2015-11-21 175 views
-1

我有這樣的HTML代碼:下一個()不選擇一個元素

<div> 
    <li>list item 1</li> 
    <li>list item 2</li> 
    <li class="third-item">list item 3</li> 
    <li>list item 4</li> 
    <li class="fifth-item">list item 5</li> 
    <li>list item 5</li> 
    </div> 

這jQuery代碼:

$("li.third-item").next(".fifth-item").css("background-color", "red"); 

這是爲了這個<li>項目漆爲紅色:

<li class="fifth-item">list item 5</li> 

我試過各種各樣的東西,但無法弄清楚發生了什麼。

回答

1

next()元素後立即選擇的兄弟姐妹,你的情況.fifth-item不是之後。所以,你需要使用nextAll()first()

  1. nextAll() - 讓所有的兄弟姐妹元素
  2. first()旁邊 - 從集合獲得的第一個元素

$("li.third-item").nextAll(".fifth-item").first().css("background-color", "red");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<ul> 
 
    <li>list item 1</li> 
 
    <li>list item 2</li> 
 
    <li class="third-item">list item 3</li> 
 
    <li>list item 4</li> 
 
    <li class="fifth-item">list item 5</li> 
 
    <li>list item 5</li> 
 
</ul>

+0

不需要使用'first()'。 OP可能想要選擇所有元素(來自question_中的代碼),或者只有一個具有該類的元素。 – Tushar

+0

@Tushar:如果他想要選擇第一個元素,因爲'next()'只會選擇一個元素 –

+0

我不確定next()是否會立即選擇元素之後的兄弟元素。我的問題特別與next()中的論點有關,而且我對所有這些都感到困惑。請參閱:http://stackoverflow.com/questions/33841748/confused-how-next-arguments-work – daremkd