2014-12-02 233 views
-5

如何訪問<li>jQuery is for chumps!</li>元素? 它沒有ID,所以我不知道該怎麼做。 我將它存儲在一個變量訪問特定的DOM元素

<!DOCTYPE html> 
<html> 
    <head> 
     <title>Simplify, Simplify</title> 
     <script type='text/javascript' src='script.js'></script> 
    </head> 
    <body> 
     <div> Remember! 
      <ul> 
       <li> 
        <ol> 
         <li>Start with the function keyword</li> 
         <li>Inputs go between()</li> 
         <li>Actions go between {}</li> 
         <li>jQuery is for chumps!</li> 
        </ol> 
       </li> 
       <li>Inputs are separated by commas.</li> 
       <li>Inputs can include other functions!</li> 
      </ul> 
     </div> 
    </body> 
</html> 
+0

它可以像'$容易( '禮:包含( 「jQuery是爲傻瓜!」)' )'。你可以使用許多遍歷方法,使用它們:https://api.jquery.com/category/traversing/ – 2014-12-02 08:05:22

+0

你想通過它的內容或位置來使用'li'嗎? – 2014-12-02 08:05:24

+0

基於...... li的內容或其位置的選擇是什麼 – 2014-12-02 08:05:40

回答

1

你可以這樣做:

var selector = $('ol li:last'); 

更具體會增加一個ID或類父DIV做像這樣:

var selector = $('#parent ol li:last'); 

或者,如果它可以在你的OL,那麼你可以使用在任何地方包括:

var selector = $('#parent ol li:contains("jQuery is for chumps!")'); 
+0

您正在尋找的li實際上是'ol'的最後一個孩子,而不是'ul' – webkit 2014-12-02 08:06:52

+1

不會選擇'

  • 輸入可以包含其他功能!
  • '? – 2014-12-02 08:06:53

    1

    你可以在這裏使用多個選擇

    //using the contents of the li, using contains() can return partial matches so need to be careful about it 
     
    $('ul ol li').filter(':contains("jQuery is for chumps!")').css('color', 'red'); 
     
    //using the position - it targets the last child of the ol element 
     
    $('ul ol li:last-child').css('background-color', 'green');
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
     
    <div>Remember! 
     
        <ul> 
     
        <li> 
     
         <ol> 
     
         <li>Start with the function keyword</li> 
     
         <li>Inputs go between()</li> 
     
         <li>Actions go between {}</li> 
     
         <li>jQuery is for chumps!</li> 
     
         </ol> 
     
        </li> 
     
        <li>Inputs are separated by commas.</li> 
     
        <li>Inputs can include other functions!</li> 
     
        </ul> 
     
    </div>

    0

    沒有jQuery的:document.getElementsByTagName('li')[5]

    然後你可以使用if語句來檢查它是否有正確的內容。

    var i = 0; 
    while(i <= document.getElementsByTagName('li').length()){ 
        if(document.getElementsByTagName('li')[i].innerHTML == "jQuery is for Chumps"){ 
         //Do Something 
        } 
        i++; 
    } 
    
    0

    首先你的HTML,使查詢速度更快,添加ID。否則,你將不得不從身體標籤看,這可能需要一些時間。

      <ul id="menu-bar"> 
           <li> 
            <ol> 
             <li>Start with the function keyword</li> 
             <li>Inputs go between()</li> 
             <li>Actions go between {}</li> 
             <li>jQuery is for chumps!</li> 
            </ol> 
           </li> 
           <li>Inputs are separated by commas.</li> 
           <li>Inputs can include other functions!</li> 
          </ul> 
    

    而且現在的選擇,無論是通過檢查的最後一個節點

    var lastElement = $('#menu-bar > li > ol > li:last'); 
    

    或內容(如果您支持多國語言,將無法正常工作)

    var lastElement = $('#menu-bar > li > ol li:contains("jQuery is for chumps!")') 
    
    0

    獲取直接兒童ol元素:

    var children = $("ol > li"); 
    

    獲取特定元素:

    var element = children.last(); 
    

    獲取從元素中的文本:

    var text = element.html();