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 个重复,我在第一个的两个相关行周围加上了星号。这些星号不在实际代码中。

这是我尝试过的 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 产品块之一中<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 回答