如何使用jQuery删除div内的加号(但不是减号)?

时间:2011-08-12 17:24:49

标签: jquery

我在div中得到三种值:

加号:

<div class="thumblock ">
+2
<div class="ratingtext ">
<div class="raterclear"></div>
</div>
</h4>
<span>votes</span>
</div>

带减号:

<div class="thumblock ">
-2
<div class="ratingtext ">
<div class="raterclear"></div>
</div>
</h4>
<span>votes</span>
</div>

并且没有迹象:

<div class="thumblock ">
0
<div class="ratingtext ">
<div class="raterclear"></div>
</div>
</h4>
<span>votes</span>

如何使用jQuery删除.thumblock div中的加号?     

修改

<div class="thumblock">
    <div id="gdsr_thumb_text_137_a" class="gdt-size-20 voted inactive gdthumbtext">
      <span class="rating-result">2</span>
    </div>

    <div class="ratingtext">
      <div id="gdsr_thumb_137_a_up" class="gdt-size-20 gdthumb gdup">
        <div class="gdt-starrating"></div>
      </div>

      <div id="gdsr_thumb_137_a_dw" class="gdt-size-20 gdthumb gddw">
        <div class="gdt-starrating"></div>
      </div>
    </div>

    <div class="raterclear"></div>
  </div>

9 个答案:

答案 0 :(得分:4)

应该这样做..

$('.thumblock').html(function(i, oldhtml) {
  return oldhtml.replace('+','');
});

http://jsfiddle.net/Nctg5/

演示

注意:您的结束标记无效h4(无需打开)


<强>更新

使用此功能,因为您有其他插件使用相同的内容..

$('.thumblock')
    .contents()
    .filter( function(){
        return this.nodeType == 3;
    }).each(function(){
        this.nodeValue= this.nodeValue.replace(/\+/g,'');
    });

http://jsfiddle.net/Nctg5/3/

演示

答案 1 :(得分:1)

在这里进行了测试和解释:http://jsfiddle.net/JrhGy/1/

$('.thumblock').html(function(k,html){
    return html.replace(/^\s*\+/,'');
})

具有不干扰其他+符号的优点=只会替换内容中的前导+符号。

答案 2 :(得分:0)

$('.thumblock').each(function(){
    var value = $(this).text().replace('+', '');
    $(this).text(value);
});

这会迭代div,只用空字符串替换+符号,并将div中的文本设置为新字符串。

答案 3 :(得分:0)

...试

$('.thumblock').each(function(){
    var me = $(this);
    $(me).text($(me).text().replace('+',''));
});

答案 4 :(得分:0)

sup alex

因此,如果您可以控制标记,则应该在一个范围内购买“运营商” 像这样

<div class="thumblock ">
 <span class="plus">+</span>2
<div class="ratingtext ">

... other

<div class="thumblock ">
 <span class="minus">-</span>2
<div class="ratingtext ">

和代码

$(".thumblock span.plus").remove();

答案 5 :(得分:0)

$('.thumblock').text($(this).replace("+",""));

答案 6 :(得分:0)

尝试:

$(".thumblock").each(function(k,v){
    var ele = $(this);
    var eleText = ele.text();
    ele.text(eleText.replace(/\+/g, ""));
});

工作示例:http://jsfiddle.net/epXaK/

答案 7 :(得分:0)

jQuery(function(){

    $('.thumblock').each(function() {

       $(this).text($(this).text().replace('+','') )

    });
});

http://jsfiddle.net/praveen_prasad/q8C4N/2/

答案 8 :(得分:0)

首先,我会重新组织你的html,这样我就可以访问你所指的特定值。我会做类似的事情:

<div class="thumblock ">
<span class="thumblockspan">+2</span>
<div class="ratingtext ">
<div class="raterclear"></div>
</div>
</h4>
<span>votes</span>
</div>

然后,您可以执行简单的replace(),例如:

var v = $('.thumblockspan').html();
v=v.replace('+','');
$('.thumblockspan').html(v);

或者,有一行:

$('.thumblockspan').html($('.thumblockspan').html().replace('+',''));

正则表达式也是一个选项,但对于这个简单的东西,替换似乎可以解决问题:)