0

我有一些结构如下的 HTML:

<div class="ProductPriceRating">
    <em>
        <strike class="RetailPriceValue">$65.00</strike> 
        $45.00
    </em>
</div>

我需要选择“$45.00”。我认为这会起作用:

$('.ProductPriceRating strike').siblings().css('background','red');

但它没有

4

2 回答 2

5

您不能将样式应用于文本节点,您需要用元素包装它

尝试

var node = $('.ProductPriceRating strike').get(0).nextSibling;
$(node).wrap('<span/>').parent().css('background','red');

演示:小提琴

于 2013-08-21T16:56:16.277 回答
2

您不能直接设置文本节点的样式,而是将其包装在一个跨度和样式中:

HTML

<div class="ProductPriceRating">
    <em>
        <strike class="RetailPriceValue">$65.00</strike> 
        <span>$45.00</span>
    </em>
</div>

jQuery

$('.ProductPriceRating strike').siblings().css('background','red');

工作演示

如果您无法更改 HTML 结构,您可以尝试设置em和 的样式strike

$('.ProductPriceRating em').css('background','red');
$('.ProductPriceRating strike').css('background','white');
于 2013-08-21T16:56:23.423 回答