2011-01-26 47 views
16

Usando jQuery, ¿cómo puedo eliminar una etiqueta de anclaje en mi cuerpo html que también consta de un div envoltorio, y este div envoltorio está por encima de la etiqueta de anclaje que quiero eliminar.jquery eliminar elemento hijo directo

Es como

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

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

</body> 

Si uso

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

que elimina la primera etiqueta de anclaje en mi envoltorio div es decir, uno con id "not_me", mientras que yo quiero "remove_me" estar remoto.

Respuesta

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

Se utilizan children()(docs), ya que sólo desea orientar hijos directos de body.

Luego use "a:first" como el selector para apuntar al primer elemento <a>.

Esto es porque con el first-child-selector(docs) sólo obtendrá el <a> si es el primer hijo de su padre (que no lo es). Pero con el first-selector(docs) obtienes el primer <a> que se combinó.

alternativa sería colocar todo en un solo selector:

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

Igual que el anterior, pero utiliza el >child-selector(docs) en lugar del método children()(docs).

+0

aahhh! supme una vez más! Me encanta eso ...: p) – jAndy

+0

@jAndy: Hay un par más para ti. : o) – user113716

7

que desea utilizar children() buscar en sólo los niños directos, y se puede utilizar :first o eq(0) para eliminar la primera:

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

por qué no pruebas:

$("#remove_me").remove() 

no sé si está mal, todavía estoy aprendiendo: P

+0

Eso es correcto, pero tengo la sensación de que OP solo usó los ID por el ejemplo para mostrar a qué '' se apuntó, y cuál no. : o) – user113716

+0

hmm ok, entonces los niños primero harían el truco .. Gracias :) – pavid

+0

lo siento, pero se olvidó de mencionar que el ID ("remove_me" es por ejemplo) se genera dinámicamente por lo que no podemos usar el método sugerido, de todos modos, gracias para la respuesta – Prashant

Cuestiones relacionadas