2011-07-14 30 views
1

我有以下的html代碼:jQuery的獲取標記的標籤與選擇

<div id="test"> 
    <nav> 
     <ul> 
      <li>One</li> 
      <li>Two</li> 
     </ul> 
     <ul> 
      <li>One</li> 
      <li>Two</li> 
     </ul> 
     <ul> 
      <li>One</li> 
      <li>Two</li> 
     </ul> 
    </nav> 
</div> 

我想一個李添加到第一個UL的底部。

我敢肯定,我已經看到了一些地方,比如$("test:nav:ul"), 但我不能找到類似的任何幫助, 可能你們幫幫我嗎?

回答

4

使用此:

$('#test ul:first').append('<li>anything inside li</li>'); 

,或者性能問題,使用:

$('#test ul').filter(':first').append('<li>something here</li>'); 

,或者您也可以使用:

$('#test ul').first().append('<li>something here</li'); 

甚至你可以倒着走:

$('<li>something</li>').appendTo('#test ul:first'); 
+0

+1添加一個ID,UL和得到它。只是好奇。第二個如何更快? – naveen

+0

** $('#test ul:first')。append('

  • hello
  • '); ** – chhameed

    +0

    因爲':first'僞類是一個jQuery擴展。在CSS規範中你看不到':first'。因此,jQuery不能使用'querySelectorAll()'方法(由瀏覽器實現)。 –

    2

    您正在尋找的後代選擇:$('#test nav ul:first')

    1
    $("#test nav ul:first").append('<li>Three</li>'); 
    

    如果您使用的是IE < = 8,然後用這個:

    $("#test ul:first").append('<li>Three</li>'); 
    

    #意味着ID=。術語之間的空格意味着「後代」。並且:first獲得集合中的第一個元素(在這種情況下爲UL)。由於UL是#test的後裔,所以選擇器nav並不是真的需要。

    +0

    快,只是一個通知,這劑量的工作。我認爲'nav'不被識別。 – Dementic

    +0

    @Dementic:適合我。 http://jsfiddle.net/9a3A8/ –

    +0

    工作在IE8上,甚至是jsfiddler的例子。它只適用於刪除'nav' – Dementic

    2
    $("#test ul:first").append("<li></li>"); 
    

    :first選擇第一匹配元件,在這種情況下,第一ul

    0

    你可以像這樣的東西得到它,

    $('ul').first() 
    

    Ø只是ID與

    $('#id')