jQuery .each() 将变量设置为它找到的第一个变量
jQuery .each() setting variable to the first one it finds
我试图遍历页面上的所有 .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()?
你的问题是这一行:
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>
您必须从当前元素 $(this)
而不是全局查找文本,因此请尝试替换
var starvalue = $('.starwrapper .rating').text();
和
var starvalue = $(this).find('.rating').text();
我不确定,但试试这个 starvalue 变量:
var starvalue = $('.rating', $(this)).text();
我试图遍历页面上的所有 .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()?
你的问题是这一行:
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>
您必须从当前元素 $(this)
而不是全局查找文本,因此请尝试替换
var starvalue = $('.starwrapper .rating').text();
和
var starvalue = $(this).find('.rating').text();
我不确定,但试试这个 starvalue 变量:
var starvalue = $('.rating', $(this)).text();