给出以下HTML块:
<ul id="taglist">
<li><a name="45" href="">Product 1</a></li>
<li><a name="1146" href="">Product 2</a></li>
<li><a name="13437" href="">Product 3</a></li>
<li><a name="51" href="">Product 4</a></li>
</ul>
JQUERY是否可以返回一个STRING,一个名为值的变量:
alert(tagliststring);
警告:45,1146,13437,51
由于
答案 0 :(得分:7)
您可以使用each
功能:
var names = [];
$('#taglist > li > a').each(function() {
names.push(this.name);
});
var result = names.join(',');
alert(result);
这样,names
将是一个填充了每个单独名称的数组,result
将是您要查找的以逗号分隔的字符串。
有关详细信息,请参阅jQuery documentation。
更小的方法是使用jQuery的map
函数:
var names = $('#taglist > li > a').map(function() { return this.name; }).get();
var result = names.join(',');
第一个例子可能会让人们更容易阅读和理解。
答案 1 :(得分:5)
使用$.map
:
var names = $('#taglist > li > a').map(function() {
return this.name;
}).get().join(',');
// names will contain the string: "45,1146,13437,51"
$.map
方法允许您通过函数传递当前匹配集中的每个元素,从而生成包含返回值的新jQuery对象。
在$.map
之后,我使用get
方法获取一个普通的JavaScript Array对象,我最终可以调用join
方法生成一个字符串。
检查上面的示例here。
答案 2 :(得分:0)
var output;
$('li a').each( function() { output += $(this).attr('name') + ','; });
请注意,这将在结尾处输出额外的,
。