jquery find(),eq() 返回值問題
阿新 • • 發佈:2018-12-06
之前一直以為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的值,