我有这样的结构:
如何使用javascript或jQuery将文本作为数组?
['text1', 'text2', 'text3']
我的计划是将它组装成一个字符串,可能是使用.join(', ')
它,并以这样的格式得到它:
'"text1", "text2", "text3"'
Shog9.. 138
var optionTexts = []; $("ul li").each(function() { optionTexts.push($(this).text()) });
......应该做的伎俩.要获得您正在寻找的最终输出,join()
加上一些连接将很好地做到:
var quotedCSV = '"' + optionTexts.join('", "') + '"';
jQuery是否保证查询返回的元素的顺序?我假设返回的顺序与DOM中的顺序相同(即text1,text2,text3),但我不知道在文档中要查找的内容是否正确. (2认同)
我从来没有看到它以正常阅读顺序的任何其他方式遍历DOM.所以虽然我无法证明这一点,但我敢打赌它的农场它通过DOM从上到下遍历:) (2认同)
kimstik.. 71
没有冗余的中间阵列:
arr = $('li').map(function(i,el) { return $(el).text(); }).get();
请参阅jsfiddle 演示
var optionTexts = []; $("ul li").each(function() { optionTexts.push($(this).text()) });
......应该做的伎俩.要获得您正在寻找的最终输出,join()
加上一些连接将很好地做到:
var quotedCSV = '"' + optionTexts.join('", "') + '"';
没有冗余的中间阵列:
arr = $('li').map(function(i,el) { return $(el).text(); }).get();
请参阅jsfiddle 演示
在干净的JavaScript中:
var texts = [], lis = document.getElementsByTagName("li"); for(var i=0, im=lis.length; im>i; i++) texts.push(lis[i].firstChild.nodeValue); alert(texts);
kimstik很接近,但并不完全.
以下是如何在方便的单行中完成:
$.map( $('li'), function (element) { return $(element).text() });
这是jQuery的map函数的完整文档,它非常方便:http://api.jquery.com/jQuery.map/
为了完全回答,这里是您正在寻找的完整功能:
$.map( $('li'), function (element) { return $(element).text() }).join(', ');
var arr = new Array(); $('li').each(function() { arr.push(this.innerHTML); })