1. 程式人生 > >jquery find(),eq() 返回值問題

jquery find(),eq() 返回值問題

之前一直以為find()函式返回的是一個數組型別,並不是jquery物件,後來在開發中發現有的程式碼體現的並不是陣列型別,就一直存在疑惑,現在做個總結。

直接上程式碼

<!DOCTYPE html>
<html>
<head>
<script src="/jquery/jquery-1.11.1.min.js">
</script>
<script>
$(document).ready(function(){
  $("#but").click(function(){
var $p= $("#b").find("p"
); console.log($p); //返回 m.fn.init(3)..... console.log(jQuery.type($p)); // 返回 object console.log($p instanceof jQuery); //返回 true console.log($p.html()); //返回 aa console.log($p[1]); //返回 <p>bb</p> console.log($p[1] instanceof jQuery); //返回 false console.log($p.eq(1)); //返回 m.fn.init console.log($p.eq(1
) instanceof jQuery); //返回 true console.log($p.eq(1).html());//返回 bb }) })
</script> </head> <body id="b"> <p>aa</p> <p>bb</p> <p>cc</p> <input type="button" value="點選" id="but"/> </body> </html>

說明 find()函式返回的是一個jquery物件陣列,如果直接呼叫html(),val()預設取值是陣列的下標位0的值,

p[1]Dom p.eq(1) 返回的是一個jquery物件