NodeLIst での反復の順序
要素を削除するときに変更されている NodeList の前方反復を行うと、問題が発生する可能性があります。DOM から要素を削除するときは、逆に繰り返します。
の誤用detach()
また、引数.detach()
はネストされた検索を実行するのではなく、jQuery オブジェクト内の既存の要素に対するフィルターとして機能し、文字列を渡す必要があります。実際に をデタッチしたいようです。これは、それ自体li
を呼び出す必要があることを意味します....detach()
li
var liste=document.getElementById("tabs").getElementsByTagName("li");
var i = liste.length
while(i--) {
if(liste[i].id==2) {
$(liste[i]).detach();
}
}
remove()
好ましいかもしれません
を使用する.detach()
と、すべての jQuery データが保持されることに注意してください。この要素をもう使用しない場合は、.remove()
代わりに使用する必要があります。
// ...
$(liste[i]).remove(); // clean up all data
コード削減
最後に、jQuery を使用しているので、これらすべてをセレクターで行うことができます...
$('#tabs li[id=2]').remove(); // or .detach() if needed
有効な ID 属性
IDに関して次の点に注意してください...
- ページに重複した ID を持つことは無効です
- 数字で始まる ID を持つことは HTML4 では無効です。
上記のセレクターでは、attribute-equalsフィルターを使用したので動作しますが、他の場所での問題を回避するために、実際には有効な HTML を使用する必要があります。