如何从 div 中删除字符“,”。例如,
<div class="something">This, is, the, text. </div>
现在我想使用javascript从那个div中删除所有的“,”。
请原谅我在 javascript 中太菜鸟。
如何从 div 中删除字符“,”。例如,
<div class="something">This, is, the, text. </div>
现在我想使用javascript从那个div中删除所有的“,”。
请原谅我在 javascript 中太菜鸟。
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, '');
要替换所有出现的字符序列,您必须使用带有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
}
}
}
需要注意的事项:
如果您要搜索的文本包含特殊的正则表达式字符,您必须先正确转义它们。
如果您还想替换子元素内的文本,则必须为每个元素节点(nodeType
is 1
)递归调用此函数。
参考: String.replace
, Node.childNodes
, Node.nodeType
, Node.nodeValue
,RegExp