我需要检索单击列表项旁边的列表项的id。 例如,请考虑以下列表。现在,当点击“第1项”时,我需要检索“第2项”的ID。
<ul>
<li id="id1">item 1</li>
<li id="id2">item 2</li>
<li id="id3">item 3</li>
</ul>
所有这些id都是动态的。我可以使用以下代码获取下一个列表项:
$li = $('li').get(ui.item.index() + 1);
但是当我尝试使用以下代码获取它的id时,它不起作用。
$nextid = $li.id;
或者
$nextid = $li.attr('id');
如果有人可以帮我解决这个问题或建议任何替代解决方案,我真的很感激!
答案 0 :(得分:1)
您可以使用next()
功能:
更新#1
检查第二个听众。每次单击该按钮,都会生成1到6之间的随机数。使用此数字来获取具有此索引的list元素(减1,因为index基于零)。
更新#2
更新了第一个函数,以便当用户点击最后一个列表元素时,将会提醒第一个列表元素的ID,正如David Thomas所提到的那样。
$(document).on('click', 'li', function() {
var nextID;
var nextElem = $(this).next();
if (nextElem.length > 0) {
nextID = nextElem.attr('id');
} else {
nextID = $(this).closest('ul').children('li').eq(0).attr('id');
}
alert(nextID);
});
$(document).on('click', '#random', function() {
var index = Math.floor(Math.random() * 6) + 1;
var elem = $('ul').find('li').eq(index - 1);
alert(elem.attr('id'));
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<ul>
<li id="id1">item 1</li>
<li id="id2">item 2</li>
<li id="id3">item 3</li>
<li id="id4">item 4</li>
<li id="id5">item 5</li>
<li id="id6">item 6</li>
</ul>
<button id="random">Get random id</button>
&#13;