JQuery:如何从这个HTML页面获取“item1,item2”?

时间:2011-07-27 06:42:01

标签: jquery

我希望从这个简单的HTML页面中获取“第1项,第2项”:

<html>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<body>
<ul id="mylist">
  <li>item 1</li>
  <li>item 2</li>
</ul>
</body>
</html>

以下是我在Chromium的JavaScript控制台上尝试的内容:

> var a = $("#mylist").children().map(function(index,element){ return $(element).text(); });
> a
["item 1", "item 2"]
> a.join(", ")
TypeError: Object [object Object] has no method 'join'

如果a是数组对象,join将起作用:

> ["item 1", "item 2"].join(", ")
"item 1, item 2"

但事实并非如此,如何加入?

4 个答案:

答案 0 :(得分:3)

您需要调用.get()来恢复正常的数组对象。

a.get().join(", ")

http://api.jquery.com/get/

答案 1 :(得分:2)

你错过了.toArray()部分

var a = $("#mylist").children().map(function(index,element){ return $(element).text(); }).toArray().join(", ");

答案 2 :(得分:1)

每个()方式:

var results = [];
$("#mylist li").each(function() { 
    results.push($(this).text()); 
});
results = results.join(", ");

答案 3 :(得分:0)

以下是两种可能性:

1:

var a = $("#mylist").children().map(function(index,element){ return $(element).text(); });  
var string = ""
for (var i = 0; i < a.length - 1; i++) string += a[i] + ", ";
string += a[a.length - 1];

2:

var a = $("#mylist").children().map(function(index,element){ return $(element).text(); }); 
var b = [];
for (var i = 0; i < a.length; i++) b.push(a[i]);
b.join(", ");