好奇。 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>
答案 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对象。