我正在尝试简单地重现.qu方法在jquery站点上的内容:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
</head>
<body>
<ul>
<li id="foo">foo</li>
<li id="bar">bar</li>
</ul>
<script type="text/javascript">
alert($('li').get());
</script>
</body>
</html>
它应该返回
[<li id="foo">, <li id="bar">]
但我得到的只是[object HTMLLIElement],[object HTMLLIElement]
有人知道我在这里做错了吗?
答案 0 :(得分:0)
答案 1 :(得分:0)
一切都很好:
.get()方法授予我们访问每个底层的DOM节点的权限 jQuery对象。
获取返回jQuery变量保存的DOM元素。 当您输出DomElements时,它们将变为“HTMLLIElement”形式。
答案 2 :(得分:0)
但这就是.get
的作用!它将检索由选择器匹配的HTML DOM元素。如果你想要jQuery对象,你应该只使用$('li')
。
答案 3 :(得分:0)
你不一定做错了什么。
您获得的是在其中包含2个toString
DOM对象的数组上调用alert
(<li>
将为您执行的操作)的实际结果:
[object HTMLLIElement],[object HTMLLIElement]
但是,API Documents中提到的不是数组的字符串表示,而是表示数组在内存中的当前状态:
[<li id="foo">, <li id="bar">]
这只是说这样的一种较短的方式:
结果是一个包含2个DOM对象的数组,分别代表
<li id="foo">
和<li id="bar">
元素。
现在,如果您确实希望在警报中获得标记,则必须使用get the outer HTML个元素。然后尝试:
alert($('li').map(function () { return $(this).outerHTML(); }).get());