如何从div中删除ul中的li

nim*_*imi 3 javascript

我有一个div,我在那里有一个ul,其中ul有一些li.

我只想找到一些文字并从ul中删除li.

假设例如:

<div id="div1">
  <ul>
    <li>Hello</li> <!--i need to remove this.-->
  </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

Jam*_*mes 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;
}
Run Code Online (Sandbox Code Playgroud)

  • +1表示单个任务不需要20KB的库. (8认同)

Dom*_*ger 7

使用jQuery,您可以这样做:

$("#div1 ul li:contains('Hello')").remove();
Run Code Online (Sandbox Code Playgroud)

  • OP要求使用JavaScript,而不是jQuery. (7认同)