我的html看起来像这样有几个项目
<div class="item">
<p class="price">$388.00</p>
<p class="part_number">VM2327T23A00T</p>
<p class="real_price"></p>
</div>
<div class="item">
<p class="price">$88.00</p>
<p class="part_number">AA327T23A00T</p>
<p class="real_price"></p>
</div>
<div class="item">
<p class="price">$38.00</p>
<p class="part_number">AA327T23A00T</p>
<p class="real_price"></p>
</div>
等。
我正在尝试遍历每个项目并将其“real_price”设置为值,这是我的代码:
jQuery('.part_number').each(function () {
parts.push(SearchSpring.jQuery(this).text());
SearchSpring.jQuery.ajax(
{
type: "POST",
url: "RealTimePricing.aspx/TestInteraction",
data: "{param1:'brit', param2: 'nick'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: true,
cache: false,
success: function (msg) {
jQuery("#real_price").html(msg.d);
}
}
);
});
}
我在成功时获得了正确的“msg”(我可以在firebug中看到这个),但它从不设置html,也只是每次迭代一次..
我不确定为什么这不设置html
jQuery("#real_price").html(msg.d);
为什么我的代码没有循环遍历html中的所有“.part_number”标签?
答案 0 :(得分:1)
class="real_price"
暗示.real_price
,但你必须确保你也正在更新正确的元素(该类有几个元素)。我建议使用.next
作为要更新的元素,在每个.part_number
元素旁边:
jQuery(".part_number").each(function() {
var $elem = jQuery(this).next(".real_price");
然后:
$elem.html(msg.d);
答案 1 :(得分:0)
使用.
符号代替#
,id
保留用于查询{{1}}。此外,您应该以访问单个价格的方式执行此操作,否则它将更新所有元素,如下所述。
答案 2 :(得分:0)
您正在尝试更新您的html中不存在的#real_price。您可以使用以下内容:
jQuery(this).parent(".item").find(".real_price").html( msg.d );
更新.item的另一个子.real_price