如何在不选择兄弟节点的情况下在jquery中选择文本节点

时间:2013-08-21 16:53:05

标签: jquery

我有一些HTML结构如下:

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

我需要选择“$ 45.00”。我认为这样可行:

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

但它没有

2 个答案:

答案 0 :(得分:5)

您无法将样式应用于文本节点,您需要使用元素

包装它

尝试

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

演示:Fiddle

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

<强> Working Demo

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

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