1

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

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

3 回答 3

4

是的!

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

获取 elem1 的 DOM 元素的(也许)首选方法是:

elem1.get(0);

好问题!感谢您的详细信息和小提琴。

于 2013-09-28T00:48:20.277 回答
3

您可以使用索引来检索它

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

或使用.get(index)

elem1 = $("#idDiv").get(0);
于 2013-09-28T00:43:18.370 回答
2
$("body")[0];
$("body").get(0);

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

于 2013-09-28T00:43:43.617 回答