我可以只使用jQuery删除节点中的文本而不删除子元素吗?
感谢
答案 0 :(得分:52)
从某些div删除所有文本元素的最佳和简单的解决方案是
$("#firstDiv").contents().filter(function(){
return (this.nodeType == 3);
}).remove();
答案 1 :(得分:8)
这对我有用:
$(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>
再见
答案 2 :(得分:7)
这是我的想法:
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);
}
答案 3 :(得分:0)
对于我来说,更容易在HTML中为它们全部设置一个类并在jQuery中使用empty()方法。
答案 4 :(得分:-4)
你不能这样做。除非被一个元素包裹。
答案 5 :(得分:-9)
$('#someElement').text('');