7

JavaScriptを使用して、li要素のIDを指定して、ulからほんの数個のli要素を動的に削除することは可能ですか?

実際の問題に関する更新:

私は次のリストを持っています。

<ul id="attributes" data-role="listview">
    <li id="attrib01">Attribute1</li>
    <li id="attrib02">Attribute2</li>
    <li id="attrib03">Attribute3</li>
    <li id="attrib04">Attribute4</li>
    <li id="attrib05">Attribute5</li>
</ul>

ajaxリクエスト/レスポンスの後、特定の属性が「未定義」の場合、リストから削除したいと思います。

if(typeof data.attrib1 === "undefined")
    $("#attrib01").remove();

正しいajax応答を受信して​​いることを確認しました。したがって、問題は、attrib4を削除すると、attrib[1-3]も削除されるということです。なぜこれが起こっているのか考えていますか?

4

4 に答える 4

21

試す

var elem = document.getElementById('id');
elem.parentNode.removeChild(elem);
于 2012-08-01T00:51:26.033 に答える
5

要素を取得したら、その親を見つけてから要素を削除します。次のように親から:

element = document.getElementById("element-id");
element.parentNode.removeChild(element);

親を経由する必要があるので、これは避けられません。

于 2012-08-01T00:51:31.200 に答える
3

$('#id').remove()単一の要素を削除する正しい方法です。要素 ID は html 内で一意である必要があり、呼び出しは DOM 対応関数でラップする必要があることに注意してください。

これは、 html に基づく実際の例です。すべてのリスト項目をループし、ID がデータ オブジェクトに存在しないものを削除します。

var data = {
    attrib01: "Number 1",
    attrib02: "Number 2",
    attrib04: "Number 4"
};

$(document).ready(function() {
    $("ul > li").each(function() {
        alert(this.id in data); //check if value is defined
        if(!(this.id in data)) {
            $(this).remove();
            // This also works:
            //$('#'+this.id).remove();
        }            
    });
});​

次のようにして、単一の要素 ( Demo )のみをターゲットにして削除することもできます。

$(document).ready(function() {
    $("#attrib04").remove();
});​

ID には注意してください。正確に一致する必要があります。attrib04 != attrib4

于 2012-08-01T01:34:53.707 に答える
0

これにより、li要素が非表示になります。

document.getElementById("id_here").style.visibility = "hidden";

免責事項:彼らはまだDOMにあります

DOMから要素を削除するには、JQueryの.remove()メソッドを使用します。

$("#id_here").remove();

http://api.jquery.com/remove/

于 2012-08-01T00:51:17.980 に答える