我想获取已被归类为.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标记
答案 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);
});