0

私はこのレイアウトを持っており、各 .productnamcolor クラスを循環しながら、.pricecolor クラスの innerHTML をチェックしたいと考えています。

<tr>
    <td valign="top" width="33%">
        <div>
            **<a href="http://www.site.com/Prodcut1.htm" class="productnamecolor colors_productname" title="Product 1">**
            <span itemprop='name'>
            Product 1 </span>
            </a>
            <br/>
            <div>
                <div>
                    **<b><font class="pricecolor colors_productprice"><span class="PageText_L483n">$16.00</span></font></b>**
                </div>
                <img src="Shipping_Small.gif">
            </div>
        </td>
    </td>
    <td valign="top" width="33%">
        <div>
            <a href="http://www.site.com/Product2.htm" class="productnamecolor colors_productname" title="Product 2">
            <span itemprop='name'>
            Product 2 </span>
            </a>
            <br/>
            <div>
                <div>
                    <b><font class="pricecolor colors_productprice"><span class="PageText_L483n">$9.00</span></font></b>
                </div>
                <img src="Shipping_Small.gif">
            </div>
        </td>
    </td>
    <td valign="top" width="33%">
        <div>
            <a href="http://www.site.com/Product3.htm" class="productnamecolor colors_productname" title="Product 3">
            <span itemprop='name'>
            Product 3 </span>
            </a>
            <br/>
            <div>
                <div>
                    <b><font class="pricecolor colors_productprice"><span class="PageText_L483n">$8.00</span></font></b>
                </div>
                <img src="Shipping_Small.gif">
            </div>
        </td>
    </td>
</tr>

ここには 3 回の繰り返しがあり、最初の行の関連する 2 行をアスタリスクで囲みました。これらのアスタリスクは、実際のコードにはありません。

私が試したjQueryは次のとおりです。

$(document).ready(function() {
     $('.productnamecolor').each(function() {
          var test = $('.pricecolor').innerHTML;
          console.log(test);
     });
});

私も試しました:

$(document).ready(function() {
     $('.productnamecolor').each(function() {
          var test = $(this).closest('b').innerHTML;
          console.log(test);
     });
});

これらは両方とも、コンソールに未定義であることを常に伝えます。

私が本当に必要としているのは、これらの HTML 製品ブロックの 1 つで<span class="PageText_L483n">$8.00</span><b><font class="pricecolor colors_productprice"> </font></b>. それがjQueryで確認する必要があることです。

4

1 に答える 1

2

pricecolor選択が正しくありません。該当するセクションを探す必要がありますproductnamecolor

試す

 $('.productnamecolor').each(function() {
      var test = $(this).closest('div').find('.pricecolor').html();
      console.log(test);
 });

あなたができるクラス名とのスパンを持たないすべての .productnamecolor を見つけたい場合は、最後のステートメントを読んで混乱しています:

$('.pricecolor:not(:has(".PageText_L483n"))')
                 .closest('td')
                 .find('.productnamecolor');

デモ

于 2013-10-01T22:37:22.073 に答える