如何刪除字符「,」從一個div。例如,如何刪除特定元素中的特定字符
<div class="something">This, is, the, text. </div>
現在我想要使用javascript從該div中刪除所有「,」s。
請原諒我在JavaScript中太noob。
如何刪除字符「,」從一個div。例如,如何刪除特定元素中的特定字符
<div class="something">This, is, the, text. </div>
現在我想要使用javascript從該div中刪除所有「,」s。
請原諒我在JavaScript中太noob。
var elements = document.getElementsByClassName("something");
elements[0].innerHTML = elements[0].innerHTML.replace(/,/g,'');
檢查這個例子了: http://jsfiddle.net/QpJNZ/
更新:
var elements = document.getElementsByClassName("something");
for (var i = 0; i < elements.length; ++i) {
elements[i].innerHTML = elements[i].innerHTML.replace(/,/g,'');
}
這是如何使這個工作不止一個元素。
檢查這個例子了: http://jsfiddle.net/VBEaQ/2/
如果元素只有包含文本並沒有其他的元素,你可以簡單地做取得元素的內部內容然後執行字符串替換:
element.innerHTML = element.innerHTML.replace(/,/g, '');
要替換的字符序列的所有出現,你必須使用 lobal修飾符的正則表達式。
如果元素包含其他元素,你可以遍歷所有子文本節點:
function replace(element, needle, repl) {
var children = element.childNodes, // get a list of child nodes
pattern = new RegExp(needle, 'g'), // prepare pattern
child, i, l;
for(i = 0, l = children.length; i < l; i++) {
child = children[i];
if(child.nodeType === 3) { // if we deal with a text node
child.nodeValue = child.nodeValue.replace(pattern, repl); // replace
}
}
}
事情需要提防:
如果您正在搜索的文本包含特殊規則表達字符,you have to properly escape them first。
如果要替換子元素中的文本,則必須遞歸地爲每個元素節點調用此函數(nodeType
爲1
)。
參考:String.replace
,Node.childNodes
,Node.nodeType
,Node.nodeValue
,RegExp
清楚,是我很難理解,因爲我非常新的JavaScript 你能不能只寫代碼,會做給定類(東西)的伎倆= ) – rzr 2012-04-15 12:31:53
我收錄了我使用的所有功能文檔的鏈接,請看看它。如果你的情況和你的例子一樣簡單,你可以使用第一個代碼示例。如果您不知道如何通過類名獲取元素,請查看以下問題:http://stackoverflow.com/questions/6970509/get-element-by-class-instead-of-id – 2012-04-15 12:36:42
請不要只發布鏈接。如果不可達,該怎麼辦?始終包含代碼的相關部分和解釋。 – 2012-04-15 12:31:44
@jonathan它工作得很好。謝謝^^ 只是有一個問題。如果我有同一班級的多個元素會怎麼樣?我如何循環這段代碼來處理那個類的所有元素? – rzr 2012-04-15 12:39:48
@t_virus:請注意,'getElementsByClassName'在9之前的IE中不起作用。請查看我在其他評論中提到的問題。它返回一個節點列表,如'childNodes':https://developer.mozilla.org/en/DOM/document.getElementsByClassName你可以使用'for'循環遍歷它。 – 2012-04-15 12:42:59