get方法是't返回结果

get method isn't returning results

本文关键字:返回 结果 方法 get      更新时间:2023-09-26

我试图简单地为.get方法重现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]

有人知道我在这里做错了什么吗?

一切正常:

.get()方法允许我们访问每个jQuery对象。

Get返回jQuery变量所持有的DOM元素。当你输出DomElements时,它们就变成了"HTMLLIElement"的形式。

.get就是这么做的!它将检索选择器匹配的HTMLDOM元素。如果您想要jQuery对象,您应该只使用$('li')

简单地,选择ul元素并使用html函数显示其内容:

alert($('ul').html());

html文档:

描述:获取匹配元素集中第一个元素的HTML内容。

你不一定做错了什么。

您得到的是在包含2个<li>DOM对象的数组上调用toStringalert将为您执行此操作)的实际结果:

[object HTMLLIElement],[object HTMLLIElement]

然而,API文档中提到的并不是数组的字符串表示,而是数组在内存中的当前状态的描述:

[<li id="foo">, <li id="bar">]

这只是一种简短的表达方式:

结果是一个具有2个DOM对象的数组,它们分别表示<li id="foo"><li id="bar">元素。


现在,如果您真的想获得警报中的标记,您必须获得元素的外部HTML。然后尝试:

alert($('li').map(function () { return $(this).outerHTML(); }).get());

示例:http://jsfiddle.net/cmpwM/