我有一个div,我确实有一个ul,其中ul有一些li。
我只想找到一些文字并从ul中删除li。
假设例如:
<div id="div1">
<ul>
<li>Hello</li> <!--i need to remove this.-->
</ul>
</div>
答案 0 :(得分:14)
var div = document.getElementById('div1'),
ul = div.getElementsByTagName('ul')[0],
li = ul.getElementsByTagName('li'),
len = li.length;
// Go backwards so that removing items has no effect
while (len--) {
if ( /Hello/.test(getText(li[len])) ) {
ul.removeChild(li[len]);
}
}
function getText(node) {
var s = '';
node = node.firstChild;
if ( node ) do {
if ( node.nodeType === 3 ) {
s += node.data;
}
if ( node.nodeType === 1 ) {
s += getText(node);
}
} while ( node = node.nextSibling );
return s;
}
答案 1 :(得分:7)
使用jQuery,你可以这样做:
$("#div1 ul li:contains('Hello')").remove();
答案 2 :(得分:0)
function removeLi()
{
var DIV = document.getElementById('div1');
var LI = DIV.getElementsByTagName('li');
LI[0].parentNode.removeChild(LI[0]); //remove the first li
//LI[1].parentNode.removeChild(LI[1]); //remove the second li
}