jQuery对象是否具有指向相应JavaScript对象的属性

时间:2013-09-28 00:41:39

标签: javascript jquery

好奇。 jQuery是基于JavaScript编写的。那么,对于给定的选定DOM元素,jQuery是否保留了一个属性(属性)作为相应(内部)JavaScript DOM对象的句柄?如果是这样,jQuery对象中的哪个属性充当相应JavaScript对象的句柄。

为了进一步促进,我在jsfiddle上快速写了一个例子:http://jsfiddle.net/mMvaD/1/。该示例基本上使用jQuery检索DOM对象并打印其(可枚举)属性。有人能指出我在jQuery对象中的属性指向一个JavaScript对象,如果我们有一个?为了完整起见,我还展示了属于相应JavaScript对象的属性。

以下是代码:

<html>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
<body>

<div id="idDiv"></div>
<script type="text/javascript">
$(document).ready(function() {
    $("body").append("jQuery Object:<br>");
    elem1 = $("#idDiv");
    for (var item in elem1) {
         $("body").append(item + ", ");
    }

    $("body").append("<br><br>JavaScript Object:<br>");
    elem2 = document.getElementById("idDiv");
    for (var item in elem2) {
         $("body").append(item + ", ");
    }
});
</script>
</body>
</html>

3 个答案:

答案 0 :(得分:4)

是!

jQuery对象是DOM对象的类似数组的包装器。示例中的elem1是这些类似于数组的对象之一,只有一个项目。

获得elem1的DOM元素的(可能)首选方法是:

elem1.get(0);

好问题!感谢细节和小提琴。

答案 1 :(得分:3)

您可以使用索引来检索它

elem1 = $("#idDiv")[0];

或使用.get(index)

elem1 = $("#idDiv").get(0);

答案 2 :(得分:2)

$("body")[0];
$("body").get(0);

这两者都应该从jQuery获取DOM对象。