2

在 jQuery 函数中,我需要遍历具有相同类的多个 HTML 元素,并将特定字符串与每次迭代中这些元素的内容进行比较。

谁能给我一些提示如何做到这一点?

4

4 回答 4

5

尝试这个:

$.each($('.your-class-name'), function() {
      if($(this).text() == 'your-text')
               console.log('yes');
      else
               console.log('no');
});
于 2013-10-29T09:12:28.260 回答
1

嗨,你可以通过下面的代码来做到这一点..

<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

于 2013-10-29T09:19:52.657 回答
0

这是为您准备的演示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 ');   
    }

});
于 2013-10-29T09:32:17.150 回答
0

您可以使用 .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() );
});
于 2013-10-29T09:13:31.343 回答