У меня есть этот макет, и я хочу проверить innerHTML класса.pricecolor во время циклического перехода через каждый класс.productnamcolor:
<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.
Ваш выбор неверен, вы должны искать pricecolor
соответствующего productnamecolor
секции.
пытаться
$('.productnamecolor').each(function() {
var test = $(this).closest('div').find('.pricecolor').html();
console.log(test);
});
Смущенный чтение вашего последнего заявления, если вы хотите найти все.productnamecolor, который не имеет span с именем класса, которое вы можете сделать:
$('.pricecolor:not(:has(".PageText_L483n"))')
.closest('td')
.find('.productnamecolor');
var test = $(this).closest('b').innerHTML;
работай? Разве это не делает то же самое, что ваш, который находит ближайший экземпляр этого конкретного тега?
b
там, где его нет.
innerHTML
. stackoverflow.com/search?q=jquery+check+element+exists