Frage jquery entfernen direktes Kindelement


Wie kann ich mit jQuery ein Anchor-Tag in meinem HTML-Body entfernen, das ebenfalls aus einem Wrapper-Div besteht und dieses Wrapper-Div oberhalb des Anchor-Tags liegt, das ich entfernen möchte.

Es ist wie

<body>
    <div id="wrapper"> 
        <a id="not_me" href="#">hi</a>
    </div> 

    <a id="remove_me" href="#">Remove Me</a>

</body>

Wenn ich benutze

$("body").find("a:first-child").remove();

Es entfernt das erste Anker-Tag in meinem Wrapper-Div, d. h. eins mit der ID "not_me", während ich möchte, dass "remove_me" entfernt wird.


17
2018-01-26 14:52


Ursprung


Antworten:


$("body").children("a:first").remove();

Sie nutzen children()(Dokumente) weil Sie nur direkte Kinder von zielen möchten body.

Dann benutze "a:first" als der Selektor, um den ersten zu zielen <a> Element.

Dies ist weil mit dem first-child-selector(Dokumente) Du bekommst nur die <a>  ob es ist das erste Kind seiner Eltern (was es nicht ist). Aber mit dem first-selector(Dokumente) Du bekommst das erste <a> das war abgestimmt.

Alternative wäre es, alles in einem Selektor zu platzieren:

$('body > a:first').remove();

Gleich wie oben, aber verwendet die >  child-selector(Dokumente) anstatt der children()(Dokumente) Methode.


38
2018-01-26 14:54



Sie möchten verwenden children() nur direkte Kinder suchen, und Sie können verwenden :first oder eq(0) um den ersten zu entfernen:

$("body").children("a").eq(0).remove();

7
2018-01-26 14:55



warum versuchst du es nicht:

$("#remove_me").remove()

Ich weiß nicht, ob es falsch ist, ich lerne immer noch: P


5
2018-01-26 14:57