2011-04-15 142 views
1

如何檢查被單擊的DOM元素是無序列表項中的'first'li元素還是'last'li元素?在ul中尋址第一個/最後一個元素,li

+0

你確定不是指'ul'中的最後'li'? – BoltClock 2011-04-15 17:18:59

+0

是的。我的意思是說。李在一個ul。 – ptamzz 2011-04-15 17:19:32

+0

我偷看了你改變你的問題之前的代碼。元素被點擊爲「li」中的「img」? – BoltClock 2011-04-15 17:20:35

回答

7

它出現在你的編輯之前,以及你的評論,似乎你正在迴應被點擊的li img,並試圖找出包含li是第一個還是最後一個孩子。

使用.is().closest()一起檢查:

$('ul li img').click(function() { 
    var $li = $(this).closest('li'); 

    if ($li.is(':first-child')) { 
     // First 
    } else if ($li.is(':last-child')) { 
     // Last 
    } 
}); 
+0

是必要的'$ li'中的'$'嗎? – ptamzz 2011-04-15 17:27:43

+0

@ptamzz:不,對我來說,使用'$'來標記jQuery變量只是個人慣例。你可以說一些其他的東西,比如'var li = $(this).closest('li'); '只需在'if'和'else if'中使用'li'即可。 – BoltClock 2011-04-15 17:28:18

+0

謝謝。它解決了這個問題。 :) – ptamzz 2011-04-15 17:30:32

0

如果這是你的代碼:

<ul class="myUnorderedList"><li>First</li><li>Last</li></ul> 

然後你就可以第一選擇(http://api.jquery.com/first-selector/)或最後選擇(enter link description here)訪問如下:根據你的問題

<script>$(".myUnorderedList>li:first").css("font-style", "italic");</script> 

<script>$(".myUnorderedList>li:last").css("font-style", "italic");</script> 
3

試試這個:

<ul class="myUnorderedList"><li>First</li><li>Last</li></ul> 

JS:

$('.myUnorderedList li').click(function(){ 

    if($(this).is(':first')) console.log('first li'); 
    if($(this).is(':last')) console.log('last li'); 

}) 
-1

也許這可以幫助

<ul> 
    <li>one</li> 
    <li>two</li> 
    <li>three</li> 
</ul> 

有了這個jQuery代碼

$("li").click(function(){ 
    if ($("li:first").text() == $(this).text()){ 
     alert("first"); 
    } 
    if ($("li:last").text() == $(this).text()){ 
    alert("last"); 
    } 
}); 

看到它在http://jsfiddle.net/GT7Mm/

+1

讓我們說多個項目有相同的文字?? – Neal 2011-04-15 17:26:44

1

使用first()last()

$('#ulid > li').first(); 
$('#ulid > li').last(); 
+0

這是如何幫助點擊fn? – Neal 2011-04-15 17:27:27

+0

在點擊處理程序中,您可以簡單地檢查點擊對象的第一個()或最後一個()... – 2011-04-15 17:29:47

+0

檢查它如何? – Neal 2011-04-15 17:30:17

相關問題