2010-05-25 11 views
7

Zasadniczo próbuję zrobić dokładnie to, co sugeruje temat, ale w moim alarmie pojawia się "niezdefiniowany" i nie jestem do końca pewien, dlaczego. Jestem całkiem nowy w jquery, więc prawdopodobnie mam błędną składnię, ale nie jestem pewien, dokąd się udać. wyślę obu moich próbach, które zarówno wydajność „nieokreślone” w pogotowiu ...uzyskać identyfikator elementu podrzędnego i zapisać w zmiennej przy użyciu 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); 

Odpowiedz

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

Twoje <a> elementy nie mają id, tylko href. Używanie selektora zamiast funkcji podrzędnej może ułatwić czytanie twojego kodu.

Czy masz na myśli $(".active > a").attr("href")?


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

jQuery powróci atrybut pierwszego elementu id w kolekcji jQuery. Czy masz inny element z klasą active?

Proponuję spróbować $("ul > li.active").attr("id")

0

Problem z kotwic wydaje się, że żaden z kotwami jesteś wybierając rzeczywiście mieć identyfikator. Masz na myśli .attr("href") przez przypadek?

1

W pierwszej próbie, dostajesz <a> w <li> ... który nie ma identyfikatora, po prostu trzeba to:

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

Więc druga próba jest poprawna, you can see it in action here.

Jeśli faktycznie oznaczało uzyskać id od elementu <a>, to trzeba dać im identyfikatory i Twoja pierwsza próba będzie działać, you can see it here.

-1

Otrzymujesz nieprawidłowy atrybut (lub masz nieprawidłowy znacznik). W tagach nie ma żadnego atrybutu "id". Masz „href” atrybutów, więc jeśli próbujesz Geth wartość „href” należy użyć tego:

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

W przeciwnym razie trzeba uzyskać identyfikator rodzica należy użyć:

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

Brakuje cudzysłów. –