Jquery只选择div的一部分

时间:2011-04-26 22:58:25

标签: jquery jquery-selectors

很抱歉,如果这是一个基本问题,但我被困住了。我想在以下代码中更改价格:

<body>
 <div id="price">
   <span class="title"> price</span>
 $30
 </div>   
</body> 

我试过了:

<script type="text/javascript">
    $('#price').text('$31');
</script>

但当然它会消除跨度。我尝试了几种组合。但似乎没有任何效果。不幸的是,我不能在价格上添加一个类,这会让我的生活更轻松。有谁知道怎么做?

4 个答案:

答案 0 :(得分:3)

contents()返回包括文本节点在内的所有子节点。然后你只得到带有filter()的文本节点,并且瞧。

$('#price').contents().filter(function (index) {
    return this.nodeType == 3 && index == 2; // both conditions to make sure it's the correct node
}).replaceWith(' $31');

答案 1 :(得分:1)

如何使用RegExp替换如下:

var $price = $('#price'),
    priceHTML = $price.html(),
    newPrice = '$31';

$price.html(priceHTML.replace(/\$\d+/, newPrice));

See example →

答案 2 :(得分:0)

在30美元左右添加标签或跨度,然后更改它。

答案 3 :(得分:0)

尝试格式化HTML,如下所示:

<div id="priceContainer">
  <span class="title">price</span>
  <span id="price">$30</span>
</div>   

和jQuery一样,真的:

<script type="text/javascript">
    $("#price").text("$31");
</script>