我正在尝试使用DOM在我的页面中获取一些元素:$('ul li').text()
之后(或者在那期间)我想添加一个逗号。在某些情况下,我得到的文字有空格和其他字符。
因此,我希望得到一个这样的数组,例如["first text", "second element", "third"]
使用javascript函数或jQuery更简单的方法是什么?
提前感谢您的帮助。
答案 0 :(得分:1)
如果我已正确理解您的问题,您希望将选择器中每个li
的文本放入数组中。如果是这样,试试这个:
var liText = $('ul li').map(function() {
return $(this).text();
}).get();
console.log($.unique(liText));
答案 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。