我想了解如何找到項目出現在列表中的位置。例如:如何在jQuery中返回項目出現在列表中的訂單?
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
</ul>
如果我點擊第2項,我想要接收'2'。這可能嗎?
我想了解如何找到項目出現在列表中的位置。例如:如何在jQuery中返回項目出現在列表中的訂單?
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
</ul>
如果我點擊第2項,我想要接收'2'。這可能嗎?
這是可能的語法點。
編輯:
<ul id="my_list">
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
</ul>
和JS,
var $my_list = $('#my_list');
$my_list.find('li').click(function(){
var index = $('ul#my_list li').index(this);
alert(index);
});
這應該做您的需要。希望它有幫助,思南。
僞代碼
$('ul > li').each(function(el) {
el.ClickEvent(function() {
alert(el.preceding-siblings.count() + 1);
});
});
類似的東西反正遺憾沒來得及使用jquery's index來獲得
難道不會告訴你在'ul'裏面有多少''li',而不是'ul'裏點擊'li'的索引? – 2010-02-26 12:55:09
錯誤是的,對不起,我的意思是前面的兄弟姐妹 – 2010-02-26 13:42:11
我不認爲前面的兄弟姐妹是有效的jQuery - 我錯過了什麼嗎?你的意思是'prevAll'(http://api.jquery.com/prevAll/)? – 2010-02-26 14:12:48
okie i have edited my answer do this
$(function()
{
var _item=1;
$('ul li').each(function(){
var _elm=$(this).attr('_elm',_item);
}).bind('click',_handle);
_item++;
});
function _myClick(e)
{
var _yourValue=$(e.target).attr('_elm');
//this is the value u were looking for
}
這甚至不會做Ad Taylor所要求的... – Kennethvr 2010-02-26 12:51:11
@keeth此代碼將解決他的問題 – 2010-02-26 19:35:13
,你可以將它們分配ID,如
<ul>
<li id="1">item 1</li>
<li id="2">item 2</li>
<li id="3">item 3</li>
</ul>
則:
$("li").live('click', function(){
alert($(this).attr("id"));
}
或沒有ID作爲思南說:
$("li").live('click', function(){
alert($("li").index(this) + 1);
}
1,因爲索引從0
沒有'ul'上的id,這幾乎肯定不會做他想做的事情(請參閱我的回答)。 – 2010-02-26 13:12:44
@Dominic Rodger是的,我看到了你的答案,他得到了他所要求的答案..所以我不打算更新一個問題.. tnx指出了我,儘管..它可能只是對我來說不久 – ant 2010-02-26 13:21:03
$("ul#your_ul li").click(function() {
// this is the dom element clicked
var index = $("ul#your_ul li").index(this) + 1;
});
你需要給你ul
要做到這一點對一個ID - 否則它會在所有li
S的職責範圍內ul
迴歸的li
的指標,這是不是你想要的。
完美謝謝! – 2010-02-26 12:54:16
@Ad,不客氣,@Dominic,感謝編輯... – Sinan 2010-02-26 13:42:19