我基本上试图完全按照主题的建议去做,但我的警报中“未定义”,我不完全确定原因。我对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);
答案 0 :(得分:19)
$(".active").children("a").attr("id");
您的<a>
元素没有id
,只有href
。使用选择器而不是子函数可以使代码更容易阅读。
您的意思是$(".active > a").attr("href")
吗?
$(".active").attr("id");
jQuery将返回jQuery集合中第一个元素的id
属性。你有另一个关于班级active
的元素吗?
我建议你试试$("ul > li.active").attr("id")
答案 1 :(得分:1)
在第一次尝试中,您获得<a>
内的<li>
...没有ID,您只需要这样:
var selected = $(".active").attr("id");
alert(selected);
所以你的第二次尝试是正确的,you can see it in action here。
如果你真的打算从id
元素中获取<a>
,那么你需要为他们提供ID,并且你的第一次尝试才有效,you can see it here。
答案 2 :(得分:0)
锚点的问题似乎是你选择的锚点实际上都没有ID。你的意思是.attr("href")
吗?
答案 3 :(得分:0)
您获取了错误的属性(或者您的标记错误)。您的标签中没有“id”属性。你有“href”属性,所以如果你试图找到“href”的值,你应该使用它:
var selected = $(".active).children("a").attr("href");
alert(selected);
否则,如果你需要获得父母的身份证,你应该使用:
var selected = $(".active).attr("id");
alert(selected);