检查标签/类是否存在多个标签?

时间:2013-10-01 22:33:17

标签: javascript jquery html

我有这个布局,我想在循环浏览每个.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检查的内容。

1 个答案:

答案 0 :(得分: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');

<强> Demo