如何从div中删除字符“,”。例如,
<div class="something">This, is, the, text. </div>
现在我想使用javascript删除该div中的所有“,”。
请原谅我在javascript中过于通奸。
答案 0 :(得分:4)
如果元素只包含文本而没有其他元素,您只需获取元素的内部内容然后执行字符串替换:
element.innerHTML = element.innerHTML.replace(/,/g, '');
要替换所有出现的字符序列,您必须使用带有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
答案 1 :(得分:4)
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/