在jQuery中获取一个列表元素内容的数组
我有这样的结构:
<ul> <li>text1</li> <li>text2</li> <li>text3</li> </ul>
如何使用JavaScript或jQuery获取文本作为数组?
['text1', 'text2', 'text3']
我之后的计划是将其组装成一个string,可能使用.join(', ')
,并以如下格式获取:
'"text1", "text2", "text3"'
var optionTexts = []; $("ul li").each(function() { optionTexts.push($(this).text()) });
…应该做的伎俩。 为了得到最终的输出结果, join()
加上一些连接可以很好地完成:
var quotedCSV = '"' + optionTexts.join('", "') + '"';
没有冗余的中间arrays:
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/
只是为了全面回答,以下是您正在寻找的完整function:
$.map( $('li'), function (element) { return $(element).text() }).join(', ');
var arr = new Array(); $('li').each(function() { arr.push(this.innerHTML); })