0

我正在尝试使用 DOM 在我的页面中获取一些元素:$('ul li').text()

在那之后(或者可能在此期间)我想添加一个逗号。在某些情况下,我得到的文本有空格和其他字符。

结果,我很想得到一个像这样的数组["first text", "second element", "third"]

使用 javascript 函数或 jQuery 更简单的方法是什么?

在此先感谢您的帮助。

4

5 回答 5

1

如果我正确理解了您的问题,您希望将li选择器中每个文本的文本放入一个数组中。如果是这样,试试这个:

var liText = $('ul li').map(function() {
    return $(this).text();
}).get();
console.log($.unique(liText));

示例小提琴

于 2012-05-17T09:30:18.193 回答
1

使用 jQuery $.map()方法。它的目标是返回一个映射值数组。在回调中获取元素的文本内容,您最终会得到一个元素文本内容的数组。

使用 Array.join() 方法返回数组元素的逗号分隔字符串(在您的情况下为元素的文本)。

var els = $('li');

var arr = $.map(els, function(item) {
    return $(item).text();
});

var texts = arr.join(',');​

演示

于 2012-05-17T09:33:25.320 回答
1

如果您希望根据空格的存在来获得单词数组,您可以使用joinjavascript 方法。我不熟悉另一个最喜欢的 jQuery map 方法。

var res_arr = new Array();
$("ul li").each(function(e) {
  res_arr[e] = $(this).text();
});
var output = res_arr.join(",");

所以输出将包含用逗号分隔的元素。

于 2012-05-17T09:33:39.313 回答
0
var result = new Array();
$('ul li').each(function(){
    result.push($(this).text());
})
return result;//get a array,if you want a string you can use result.join(',') or     //result.join(' ') 
于 2012-05-17T09:45:19.063 回答
0

你可以为此制作一个小插件

$.fn.csv = function(){
    var csv = '';

    this.each(function(){
        csv += $(this).text() + ',';
    });

    return csv;
};

并按如下方式使用它..

alert($('selector').csv());

这里的例子。

于 2012-05-17T09:57:59.720 回答