首先看一段HTML代碼,如下:
1 <table id="tb"> 2 <tr> 3 <td>0</td> 4 <td>1</td> 5 <td>2</td> 6 </tr> 7 <tr> 8 <td>3</td> 9 <td>4</td> 10 <td>5</td> 11 </tr> 12 </table>
如果我要獲取第二個tr里的第二個td的值:
Children:
$("#tb>tbody").children("tr:eq(1) td:eq(1)").html()
Find :
$("#tb>tbody").find("tr:eq(1) td:eq(1)").html()
結果,通過children獲取的值為:null,而通過find獲取的值為:4 這是為什么呢?
查了一下資料,通過children獲取的是該元素的下級元素,而通過find獲取的是該元素的下級所有元素。
這時回到上面,我們可以得出,$("#tb>tbody").children() 獲取的是兩個tr元素(不包括它們子元素td),
而children里面的選擇器則是在獲取的兩個tr元素里再根據條件進行篩選,所以上面那種寫法獲取不到值。
如果一定用children我們可以這樣寫:
$("#tb>tbody").children("tr:last").children("td:eq(1)").html()