0

我有几个看起来像这样的 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>

ETC..

我正在尝试遍历每个项目并将其“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);

                }
            }
        );
      });

                }

我在成功时得到了正确的“味精”(我可以在萤火虫中看到这一点),但它从不设置 html,而且它只迭代每 1 次..

我不确定为什么这不是设置 html

  jQuery("#real_price").html(msg.d);

为什么我的代码没有遍历 html 中的所有“.part_number”标签?

4

3 回答 3

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);
于 2012-06-27T15:13:42.237 回答
0

使用.符号代替#,它是为查询保留的id。此外,您应该以访问单个价格的方式执行此操作,否则它将更新所有元素,如下所述。

于 2012-06-27T15:16:02.960 回答
0

您正在尝试更新您的 html 中不存在的 #real_price。您可以使用以下内容:

jQuery(this).parent(".item").find(".real_price").html( msg.d );这会更新 .item 的另一个子 .real_price

于 2012-06-27T15:17:30.363 回答