选择元素文本并添加逗号

时间:2012-05-17 09:26:06

标签: javascript jquery

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

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

因此,我希望得到一个这样的数组,例如["first text", "second element", "third"]

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

提前感谢您的帮助。

5 个答案:

答案 0 :(得分:1)

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

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

Example fiddle

答案 1 :(得分:1)

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

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

var els = $('li');

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

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

<强> DEMO

答案 2 :(得分:1)

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

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

因此输出将包含以逗号分隔的元素。

答案 3 :(得分: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(' ') 

答案 4 :(得分:0)

你可以为这个

制作一个小插件
$.fn.csv = function(){
    var csv = '';

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

    return csv;
};

并按如下方式使用..

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

示例here