2016-09-07 25 views
-3

的用法我有一個函數,它需要用,替換所有的+。假定$(".AdvKeyowrdAND").html返回a+b+c+d。我試圖使用map()replace(),但它只將第一個+轉換爲,。我需要使用類似each()的東西嗎?.map()和.replace()

var array = $(".AdvKeyowrdAND").map(function() { 
    return [$(this).html().replace('+',',').split(",")]; 
}).get(); 
+1

'.replace(/ \ + /克, '');' – Tushar

+0

@Tushar難道不'/'+'/ g'工作? – guradio

+2

@guradio''+'表示一個或多個單引號,後跟另一個'''。 '+'在正則表達式中是量化的。見[這個演示](https://regex101.com/r/oK3lM3/1)和[''+''demo](https://regex101.com/r/oK3lM3/2) – Tushar

回答

3

jQuery不是用來更新字符串值的正確的東西。 map()從現有的數組創建一個新的數組,而replace()旨在更新DOM,而不是字符串。

相反,使用正則表達式來更新值,如下所示:

$(".AdvKeyowrdAND").text(function(i, text) { 
 
    return text.replace(/\+/g, ','); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="AdvKeyowrdAND">a+b+c+d</div>

+0

使用'html()'作爲HTML並未顯示,並且在問題OP中使用了'html'。 – Tushar

+0

'text()'是比較好的做法,沒有設置HTML標籤 - 正如OPs的問題所暗示的 - 由於它編碼值 –

+0

是的,但是如果元素包含HTML元素,但由於HTML結構不顯示'text )'將刪除它。只是要清楚,不是我的失望。 – Tushar