get方法没有返回结果

时间:2012-02-08 20:59:00

标签: javascript jquery

我正在尝试简单地重现.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]

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

4 个答案:

答案 0 :(得分:0)

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

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

html docs

  

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

答案 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());

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