2010-05-25 9 views
7

Básicamente estoy tratando de hacer exactamente lo que sugiere el tema, pero estoy "indefinido" en mi alerta, y no estoy del todo seguro de por qué. Soy bastante nuevo en jquery, entonces, probablemente tenga la sintaxis incorrecta, pero no estoy seguro de a dónde ir desde aquí. Voy a publicar mis dos intentos, que tanto el rendimiento como "indefinido" en la alerta ...obtener una identificación del elemento hijo y almacenar en una variable usando jquery?

//In my first attempt, I'm trying to get the id of the inner a tag 
<ul> 
       <li id="l1" class="active"><a href="#c1">Samp 1</a></li> 
       <li id="l2" class=""><a href="#c2">Samp 2</a></li> 
       <li id="l3" class=""><a href="#c3">Samp 3</a></li> 
     </ul> 

var selected = $(".active).children("a").attr("id"); 
    alert(selected); 

//In my second attempt, I'm trying to get the id of the currently selected li 
    var selected = $(".active").attr("id"); 
    alert(selected); 

Respuesta

12
$(".active").children("a").attr("id"); 

Sus <a> elementos no tienen un id, sólo href. Y usar un selector en lugar de la función de niños puede hacer que su código sea más fácil de leer.

¿Quieres decir $(".active > a").attr("href")?


$(".active").attr("id"); 

jQuery volverá el atributo id del primer elemento de la colección de jQuery. ¿Tiene otro elemento con la clase active?

le sugiero que trate $("ul > li.active").attr("id")

0

El problema con los anclajes parece ser que ninguno de los anclajes que está seleccionando en realidad tienen un ID. ¿Quieres decir .attr("href") por casualidad?

1

En el primer intento, que está recibiendo el <a> dentro del <li> ... que no tiene un ID, sólo tiene esto:

var selected = $(".active").attr("id"); 
alert(selected); 

Así que su segundo intento es correcta, you can see it in action here.

Si realmente desea obtener el id del elemento <a>, necesita darles ID y su primer intento funcionará, you can see it here.

-1

Obtiene el atributo incorrecto (o tiene un marcado incorrecto). No hay ningún atributo "id" en sus etiquetas a. Usted tiene "href" atributos, por lo que si usted está tratando de Geth el valor de "href" debe utilizar esta:

var selected = $(".active).children("a").attr("href"); 
    alert(selected); 

De lo contrario, si usted necesita para obtener el id del proceso padre debe utilizar:

var selected = $(".active).attr("id"); 
    alert(selected); 
+0

Te estás perdiendo comillas dobles. –

Cuestiones relacionadas