【问题标题】:Does a jQuery object have a property that points to a corresponding JavaScript objectjQuery 对象是否具有指向相应 JavaScript 对象的属性
【发布时间】:2013-09-28 00:41:38
【问题描述】:

好奇。 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>

【问题讨论】:

标签: javascript jquery


【解决方案1】:

是的!

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

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

elem1.get(0);

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

【讨论】:

    【解决方案2】:

    你可以使用索引来检索它

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

    或使用.get(index)

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

    【讨论】:

      【解决方案3】:
      $("body")[0];
      $("body").get(0);
      

      它们都应该从 jQuery 中获取 DOM 对象。

      【讨论】:

        猜你喜欢
        • 2013-10-14
        • 2014-05-08
        • 2023-03-27
        • 2023-03-26
        • 2011-12-17
        • 1970-01-01
        • 2020-04-14
        • 1970-01-01
        相关资源
        最近更新 更多