我有
<div>
blah
<div>blah2</div>
</div>
我想删除'blah'而不删除blah2
我该怎么做?
使用最新的dojo,1.10。
答案 0 :(得分:1)
我不确定是否可以使用dojo完成 以下代码使用 dojo 和普通 javascript对象的组合来实现您想要的结果。
你的问题陈述。(注意:我已经向父div添加了一个id属性“mydiv”。)
<div id="mydiv">
blah
<div>blah2</div>
</div>
删除所有文本节点'blah'。
// require the query and domReady modules
require(["dojo","dojo/query", "dojo/domReady!" ], function(dojo,query) {
// retrieve an array of nodes with the ID "list"
var list = query("#mydiv")[0];
console.log("list:",list);
var childNodes = list.childNodes;
var len = childNodes.length;
var i;
for ( i = 0; i < len; i++){
// Destroy All textnodes.
if ( childNodes[i].nodeType === 3 ) {
//console.log ("Text node found");
dojo.destroy(childNodes[i]);
};
}
})
答案 1 :(得分:0)
感谢蒂姆·唐(Tim Down):How to remove text (without removing inner elements) from a parent element using jquery根据他的说法,自IE5起,这应该有效。
require(["dojo/query", "dojo/domReady!"], function(query) {
var parent = query("#parentid")[0];
var nextchild;
var child = parent.firstChild;
while (child) {
nextChild = child.nextSibling;
if (child.nodeType == 3) {
parent.removeChild(child);
}
child = nextChild;
}
});