2012-02-12 9 views
10

tengo una lista dinámica, que se ve así:Extracción elemento específico de una lista con jQuery

<ul> 
<li class="border" id="tl_1">Text1</li> 
<li class="border" id="tl_2">Text2</li> 
<li class="border" id="tl_3">Text3</li> 
</ul> 

La lista puede tener más elementos que estos tres.

Cuando alguien hace clic en un botón específico, quiero que p. Ej. el "tl_2" se eliminará de la lista. Yo probé un poco con estos comandos jQuery, pero no de ellos estaban trabajando:

$('#tl_2').remove(); 

o

$('li').find('tl_1').remove(); 

¿Cómo puedo solucionar esto?

+1

Muestre lo que ha intentado, debería haber funcionado ... – gdoron

+0

Tenga en cuenta que no es necesario "buscar" un elemento mediante 'id'.'id' es único – gdoron

+0

@Torben, cuando dices' dynamic', ¿quieres decir que los elementos de la lista se rellenan dinámicamente a través de una solicitud de algún tipo, posiblemente * después * de que se haya ejecutado el código en tu pregunta? –

Respuesta

-1

Debe tener un error en otro lugar, porque lo que tiene just works.

Por favor, compruebe su consola de error.

Aunque su segundo ejemplo debería ser:

$('ul').find('#tl_2').remove(); // but this isn't really needed since we are selecting by id. So just go for the first example which is faster. 
+2

Tal vez más de un elemento con la misma ID, en tal caso solo se eliminará el primero. [Updated fiddle ] (http://jsfiddle.net/AF7jw/3/) –

+0

@ShadowWizard Buena llamada. Bueno, ¿OP tiene la misma identificación más de una vez en el DOM? – PeeHaa

+0

OP no recibirá notificaciones sobre su comentario aquí, publique el comentario en su pregunta para que reciba una notificación y esperemos que responda :) –

10

Probablemente tenían algún error tonto, debería funcionar:

$('#buttonId').click(function(){ 
     $('#tl_2').remove(); 
    }); 

Tenga en cuenta que no hay necesidad de "encontrar" para el elemento por id . id es único

$('li').find('tl_1').remove(); // And you were missing the # anyway... 

Asegúrese de tener solo un elemento para cada id. id es como id ... Puede tener solo una con el mismo valor.

Cada valor de identificación debe usarse solo una vez dentro de un documento. Si a más de un elemento se le ha asignado el mismo ID, las consultas que usan ese ID solo seleccionarán el primer elemento coincidente en el DOM. Sin embargo, no se debe confiar en este comportamiento; un documento con más de un elemento que usa la misma ID no es válido.

+0

* Fue * bastante tonto - Olvidé el símbolo '# '. – ashes999

15

Probablemente tenga más de un elemento con la misma ID.

Usted no tiene que utilizar ID en absoluto en caso de que desee eliminarlos por el índice se puede utilizar el método de .eq():

$("#btnRemove").click(function() { 
    $("#myList li").eq(1).remove(); 
}); 

Esto eliminará el segundo elemento de la lista cada clic.

Live test case.

1

Creo que no nos está mostrando una parte de su código, ya que sospecho que está tratando de generar esa identificación de forma dinámica, lo que significa que también lo establece dinámicamente. usted tiene que asegurarse de que no hay ningún carácter 'espacio' dentro de la Identificación del cual es probable que estropear ...

$('#tl_2').remove(); 

Obras de acuerdo con la documentación de jQuery. funcionó para mí.

Cuestiones relacionadas