获取子元素的id并使用jquery存储在变量中?

时间:2010-05-25 14:12:38

标签: jquery attributes element

我基本上试图完全按照主题的建议去做,但我的警报中“未定义”,我不完全确定原因。我对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);

4 个答案:

答案 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);