在 jQuery 函数中,我需要遍历具有相同类的多个 HTML 元素,并将特定字符串与每次迭代中这些元素的内容进行比较。
谁能给我一些提示如何做到这一点?
在 jQuery 函数中,我需要遍历具有相同类的多个 HTML 元素,并将特定字符串与每次迭代中这些元素的内容进行比较。
谁能给我一些提示如何做到这一点?
尝试这个:
$.each($('.your-class-name'), function() {
if($(this).text() == 'your-text')
console.log('yes');
else
console.log('no');
});
嗨,你可以通过下面的代码来做到这一点..
<script type="text/javascript">
$(function() {
var foundin = $('.yourclass:contains("I am a simple string")');
});
</script>
foundin 将是一个包含任何匹配元素的 jQuery 对象。参见 API 信息:http ://docs.jquery.com/Selectors/contains#text
这是为您准备的演示JS FIDDLE,请查看。
HTML:
<div class="my_class">This is div 1</div>
<div class="my_class">This is div 2</div>
<div class="my_class">This is div 3</div>
<div class="my_class">This is div 4</div>
JS:
var search_text = "This is div 4";
// Loop through each item
$('.my_class').each(function(index) {
var current_elem_text = $(this).html();
alert(current_elem_text);
if(current_elem_text == search_text)
{
alert('Hey ! it matches ');
}
else
{
alert('Sorry it does not match ');
}
});
您可以使用 .each() 函数来完成。查看官方文档: http ://api.jquery.com/each/
.each() 方法旨在使 DOM 循环结构简洁且不易出错。当被调用时,它会遍历作为 jQuery 对象一部分的 DOM 元素。每次回调运行时,都会传递当前循环迭代,从 0 开始。更重要的是,回调是在当前 DOM 元素的上下文中触发的,因此关键字 this 指的是该元素。
// Loop through each item
$('.yourclass').each(function(index) {
// Make your comparison
console.log( index + ": " + $( this ).text() );
});