44

次のコードを使用してを追加liしています。ul

for (var i = 1; i <= len; i++) {
    li = document.createElement('li');

    element = document.createElement("img");
    element.setAttribute("src", path[i]);

    li.appendChild(element);
    root.appendChild(li);
}

ここで、ボタンクリックでリストからすべてのアイテムを削除したいと思います。これは私が使用しているものですが、機能していません:

while(root.hasChildNodes()){
    root.removeChild('li');
} 

条件は真ですが、内側の線root.removeChild('li')は機能しません。私もこれらのオプションを試しました:

root.removeChild(root li);
root.removeChild('#listid li');
root.removeChild('ul li');
...
4

7 に答える 7

58

jQueryを使用している場合は、その利点を使用してみませんか?

<li>要素の追加:

$("<li><img src='"+path[i]+"'></li>").appendTo(root);

すべての要素を削除する<li>

$(root).empty();

<li>1つの要素を削除する:

$("li:eq(3)",$(root)).remove();

また、raw jsを使用している場合は、次を使用できます。

document.getElementById("root").innerHTML = "";
于 2012-05-25T07:23:36.807 に答える
39

あなたは生のJavaScriptでこれを試しているようです:

while( root.firstChild ){
  root.removeChild( root.firstChild );
}

jQueryはここであなたを遅くするだけです。

于 2012-05-25T07:23:54.080 に答える
27
document.getElementById("the_ul_ID").innerHTML = "";
于 2014-12-05T21:15:38.810 に答える
8

どうですか?

    var ul = root;
    ul.innerHTML = '';
于 2017-01-23T08:52:53.303 に答える
2
$('#button').on('click', function() {
    $(root).empty();
});
于 2012-05-25T07:20:48.870 に答える
0

ネイティブDOMメソッド(とにかくそれらのほとんど)はjQueryのメソッドと同じようにセレクター文字列に渡すことができないため、要素を削除する前に要素をフェッチする必要があります。

var lis = root.getElementsByTagName("li");

for(var i = 0, il = lis.length;i<il;i++) {
    root.removeChild(lis[i]);
}
于 2012-05-25T07:27:40.383 に答える
0

replaceChildren()これを達成するためにどのように使用できますか:

root.replaceChildren();
于 2020-12-14T03:26:09.380 に答える