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>

等..

各アイテムを繰り返し処理し、その「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が設定されることはなく、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 に答える