【发布时间】:2010-04-26 16:40:47
【问题描述】:
我可以用 jQuery 只删除节点中的文本而不删除子元素吗?
谢谢
【问题讨论】:
标签: jquery
我可以用 jQuery 只删除节点中的文本而不删除子元素吗?
谢谢
【问题讨论】:
标签: jquery
从某些 div 中删除所有文本元素的最佳且简单的解决方案是
$("#firstDiv").contents().filter(function(){
return (this.nodeType == 3);
}).remove();
【讨论】:
remove()替换为replaceWith("new text")
这对我有用:
$(elem).html($(elem).html().replace($(elem).text(),''));
这里设置html内容不包含文本内容,意思是elem里面的任何html标签都会保持不变。
之前:
<div>Hello<input type="text" name="username" value="world!"/></div>
之后:
<div><input type="text" name="username" value="world!"/></div>
再见
【讨论】:
这是我的想法:
function removeText(element){
var newElement = $('<' + element[0].nodeName + '/>');
for(i=0; i < item.attributes.length; i++) {
newElement.attr(item.attributes[i].name, item.attributes[i].value);
}
element.children().each(function(){
newElement.append(this);
});
element.replaceWith(newElement);
}
【讨论】:
在 HTML 中为它们设置一个类并在 jQuery 中使用 empty() 方法对我来说更容易。
【讨论】:
你不能这样做。除非它被一个元素包裹。
【讨论】:
$('#someElement').text('');
【讨论】: