У меня есть куча этих divs, и я хочу, чтобы они исчезли, если цена продажи составляет $ 0.00
<div class="ProductPriceRating">
<em>
<strike class="RetailPriceValue">$79.99</strike>
$0.00
</em>
<span class="Rating Rating0">
<img src="..." alt="" style="display: none" />
</span>
</div>
Поэтому я написал этот jquery
$(function(){
$(".ProductPriceRating em").contents().filter(function() {
return this.nodeType != 1;
}).wrap("<span></span>");
console.log($(".ProductPriceRating em span").text());
if($(".ProductPriceRating span").text() == ' $0.00'){
console.log('success');
$('div.ProductPriceRating').hide();
$('div.ProductActionAdd').hide();
}
});
Я обернул тег span вокруг текстового узла, чтобы упростить доступ. Затем я консоль регистрирую его и получаю "$ 0.00 $ 0.00 $ 0.00" (один "$ 0.00" для каждого из элементов на странице). Но успеха нет.
Я просто не знаю, где я ошибаюсь
Вам необходимо выполнить цикл через каждый родительский элемент:
Из:
if($(".ProductPriceRating span").text() == ' $0.00'){
console.log('success');
$('div.ProductPriceRating').hide();
$('div.ProductActionAdd').hide();
}
Для того, чтобы:
$(".ProductPriceRating").each(function() {
if($(this).find('span').text() == ' $0.00'){
console.log('success');
$(this).hide();
$('div.ProductActionAdd').hide();
}
});
В вашем заявлении if у вас есть
$(".ProductPriceRating span").text()
В вашем console.log у вас есть
$(".ProductPriceRating em span").text()
Это может быть проблемой, потому что также существует диапазон с классом "Рейтинг",