jQuery .each()将变量设置为它找到的第一个变量

时间:2015-08-18 19:56:00

标签: jquery each

我试图遍历页面上的所有.starwrapper div,然后在该div中找到一些文本,然后添加它以显示在div的末尾。

像这样:

<script type="text/javascript">
jQuery( document ).ready(function() {
    $('.starwrapper').each(function( index ) {
      var starvalue = $('.starwrapper .rating').text();
      $(this).children('.star-rating').append(starvalue);
    });
});
</script>

麻烦的是,他们每个人都获得了第一个starvalue变量的值。可能有人知道我做错了什么.each()?

3 个答案:

答案 0 :(得分:2)

你的问题是这一行:

var starvalue = $('.starwrapper .rating').text();

实际上是绝对的,它会搜索所有.starwrapper个元素,而不会考虑$this

请改为尝试:

<script type="text/javascript">
jQuery( document ).ready(function() {
    $('.starwrapper').each(function( index ) {
      var starvalue = $(this).find('.rating').text();
      $(this).children('.star-rating').append(starvalue);
    });
});
</script>

答案 1 :(得分:1)

您必须从当前元素$(this)中找到文本,而不是全局,因此请尝试替换

var starvalue = $('.starwrapper .rating').text();

var starvalue = $(this).find('.rating').text();

答案 2 :(得分:-1)

我不确定,但尝试使用starvalue变量:

# Keep all the ACRA classes
-keep class org.acra.** { *; }