获取.selected类的ID而不单击

时间:2014-04-06 11:38:50

标签: jquery class attr selecteditem

我想获取已被归类为.selected的链接的ID。 我找到了几个解决方案,但它们不起作用,或者包含点击功能和'this'。 我不想使用任何点击功能,因为当我打开页面时,已经选择了一个链接。

这是我的列表,最好是我想要列表的ID而不是链接

        <ul id="dates">
            <li id="all"><a id="all" href="#all">1943-2003</a></li>
            <li id="li1943" ><a id="a1943" href="#1943">1943</a></li>
            <li id="li1953" ><a id="a1953" href="#1953">1953</a></li>
            <li id="li1963" ><a id="a1963" href="#1963">1963</a></li>
            <li id="li1973" ><a id="a1973" href="#1973">1973</a></li>
            <li id="li1983" ><a id="a1983" href="#1983">1983</a></li>
            <li id="li1993" ><a id="a1993" href="#1993">1993</a></li>
            <li id="li2003" ><a id="a2003" href="#2003">2003</a></li>
        </ul>

我在jquery中试过这个

    var selectYear = $("#dates").closest(".selected").attr("id");

和这个

    var selectYear = $("#dates li a.selected").attr("id");

注意:我更改了HTML标记

3 个答案:

答案 0 :(得分:1)

var li = $("#dates a.selected").parent();
var selectedYear = li.attr('id');

或者,如果您不需要li对象:

var selectedYear = $("#dates a.selected").parent().attr('id')

<强>更新

我认为您需要创建一个函数来获取所选年份:

function getSelectedYear() {
    return $("#dates a.selected").parent().attr('id');
}

现在,您可以在点击和页面加载功能中使用它:

$('#myButton').click(function() {
    var selectedYear = getSelectedYear();
    // ...
});

$(function() {
    var selectedYear = getSelectedYear();
    // ...
});

答案 1 :(得分:0)

使用以下代码:

var selectYear = $("#dates li.selected a").attr("id");

答案 2 :(得分:0)

尝试.find()这样:

var selectYear = $("#dates").find("a.selected").attr("id");

var selectYear = $("#dates").find("a.selected")[0].id;

注意:

在同一页面中,每个ID都应该是唯一的,但在您的标记代码中,您可以看到您对<li>&amp;的两个元素具有相同的ID。 <a>,据说标记无效


根据你的评论:

$(function(){
    var selectYear = $("#dates").find("a.selected").attr("id") || "No id found.";
    alert(selectYear);
});

Fiddle with "No id found."

Fiddle with "Id found."