jQuery中獲取特定順序子元素(子元素種類不定)的方法


提出問題:只已知父元素和父元素中子元素的次序,怎么通過jQuery方法獲得該元素?

 1     <p>第一部分:</p>
 2     <ul>
 3         <li>1</li>
 4         <li>2</li> // 選擇這個子元素
 5         <li>3</li>
 6     </ul>
 7     <p>第二部分:</p>
 8     <ul>
 9         <li>4</li>
10         <li>5</li>
11         <li>6</li>
12     </ul>

在不通過選擇器的情況下(:first,:last,:nth-child()等),如何通過父元素來選擇特定次序的子元素呢?

方法一:eq(n)

$("ul").children().eq(1).css("backgroundColor","blue");

或者$("ul").children().eq(-5).css("backgroundColor","blue");

 

方法二:get(n)--注意得到的DOM對象還是jQuery對象

直接用get()方法得到是DOM對象

$("ul").children().get(1).style.backgroundColor = "yellow";

或者$("ul").children()[1].style.backgroundColor = "yellow";

將get()得到的DOM對象轉化為jQuery對象

$($("ul").children().get(1)).css("backgroundColor","yellow");

方法三:slice(m,n)

$("ul").children().slice(1,2).css("backgroundColor","green");

或者$("ul").children().slice(-5,-4).css("backgroundColor","green");

 

 

小結:以上三種方法eq(n),get(n),slice(m,n)中,m,n均可正可負,以便選取特定元素。其中slice(m,n)功能更為強大,可選取一定范圍內的元素。

選取最后3個:

$("ul").children().slice(3,6).css("backgroundColor","green");

或者$("ul").children().slice(-3).css("backgroundColor","green");

最后一點補充:若選取第一個或者最后一個子元素可用first()、last()方法

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM