2011-05-30 18 views
27

有了這樣的文字:JavaScript/jQuery:替換字符串的一部分?

<div class="element"> 
<span>N/A, Category</span> 
</div> 

我想擺脫N/A每次發生的。

這裏是我的嘗試:

$('.element span').each(function() { 
     console.log($(this).text()); 
     $(this).text().replace('N/A, ', ''); 
    }); 

記錄的文字是跨度內的文本,以便選擇是好的。

我在這裏做錯了什麼?

+1

'replace' **返回**一個字符串,它不會執行適當的更改。即使如此,文本會自動設置爲元素。 – 2011-05-30 13:58:45

回答

75

您需要設置文本替換調用後:

$('.element span').each(function() { 
     console.log($(this).text()); 
     var text = $(this).text().replace('N/A, ', ''); 
     $(this).text(text); 
    }); 

這是你的代碼的工作:http://jsfiddle.net/ZSXb6/


這裏是你可以做另一種很酷的方式(帽尖@Felix王) :

$(".element span").text(function(index, text) { 
    return text.replace("N/A, ", ""); 
}); 
+15

或傳遞一個函數:'$(this).text(function(i,text){return text.replace(...);});' – 2011-05-30 13:57:26

+0

@Felix:好的通話,我總是忘記那個版本。 – 2011-05-30 13:58:02

+0

爲第二個版本+1,upvote @Felix的答案將其轉移給他:)。 – kapa 2011-05-30 14:08:22

10

它應該是這樣的

$(this).text($(this).text().replace('N/A, ', ''))