$('div')生成的不是node对象?

<!DOCTYPE html>
<html>

<head>
    <title>ceshi </title>
    <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
    <script type="text/javascript" charset="utf-8">
    $(function() {
        const container = document.getElementById('container')
        const child = $('<div>hello world</div>')
        container.appendChild(child)

    })
    </script>
</head>

<body>
    <div id="container"></div>
</body>

</html>

报错如下:

Uncaught TypeError: Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'.

jquery生成的不是node对象,那如何从jquery生成的对象中取 node对象呢?

阅读 2.5k
4 个回答

jquery生成的是jquery实例化的对象,你可以这样获得原生的node

var node = $('xxx').get(0);

// 或者

var node = $('xxx')[0];

如果jquery获取了多个dom元素,那么你可以像刚才一样利用下标去获取原生的节点,即0、1、2、3...不断叠加

$('div') // JQuery 对象
$('div')[0] // DOM 对象
$($('div')[0]) // 又是 JQuery 对象

// JQ对象才能使用JQ的方法

jquery对象和dom对象,jquery方法和dom方法了解一下

jq在dom对象的基础上进行了封装

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏