2011-08-12 33 views
1

我得到三種值的一個div:如何使用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> 
+0

@Ryan出於某種原因,它沒有奏效。 – alexchenco

回答

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/

+0

這工作得很完美(我沒有粘貼開頭的h2標籤)。 – alexchenco

+0

奇怪的是,由於某些原因,添加代碼後我不能再投票(GD星評級)。 – alexchenco

+0

@alexchenco,不是很奇怪..最初的代碼是重寫了html,並且刪除了內部元素上的所有活動事件。**在更新中使用代碼而不是** .. –

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

這遍歷的div,僅替換+爲空字符串標誌,並設置在div到新的字符串文本。

+0

..但是這也將刪除'.thumblock'元素中的所有子元素。 –

0

嘗試...

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

SUP亞歷克斯

so如果你有控制研究過markupp你shuld但在跨度 的 「經營者」 這樣的

<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(); 
+0

我沒有對markupp – alexchenco

1

測試和這裏的解調器:http://jsfiddle.net/JrhGy/1/

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

具有不干擾其他+標誌=的優勢只會取代前導+登錄內容。

+0

的控制很奇怪,其中一些工作在這裏的答案打破了投票功能(Wordpress的GD星級插件)。 – alexchenco

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

嘗試:

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

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

0

首先,我要重新組織你的HTML,這樣我可以訪問只是特定值你指的是。我會做這樣的事情:

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

然後,你可以做一個簡單的替換(),所以像:

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

或者,用一條線:

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

正則表達式也是一種選擇,但對於這個簡單的東西,取代似乎是做伎倆:)

+0

由於某些原因,單行代碼不起作用。 – alexchenco

+0

呵呵,這很奇怪。我只是試了一下,它似乎爲我工作。只需使用三線版本然後.... – Landon