jquery - 创建所有LI名称的列表

AnA*_*ice 3 javascript each jquery loops

鉴于以下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>
Run Code Online (Sandbox Code Playgroud)

JQUERY是否可以返回一个STRING,一个名称为值的变量:

alert(tagliststring);
Run Code Online (Sandbox Code Playgroud)

警惕:45,1146,13437,51

谢谢

TM.*_*TM. 7

你可以使用这个each功能:

var names = [];
$('#taglist > li > a').each(function() {
    names.push(this.name);
});
var result = names.join(',');
alert(result);
Run Code Online (Sandbox Code Playgroud)

这样,names将是一个填充每个单独名称的数组,并且result将是您要查找的逗号分隔的字符串.

有关更多信息,请参阅jQuery文档.

更小的方法是使用jQuery的map功能:

var names = $('#taglist > li > a').map(function() { return this.name; }).get();
var result = names.join(',');
Run Code Online (Sandbox Code Playgroud)

第一个例子可能更容易让人们阅读和理解.


CMS*_*CMS 5

使用$.map:

var names = $('#taglist > li > a').map(function() {
  return this.name;
}).get().join(',');
// names will contain the string: "45,1146,13437,51"
Run Code Online (Sandbox Code Playgroud)

$.map方法允许您通过函数传递当前匹配集中的每个元素,从而生成包含返回值的新jQuery对象.

之后$.map,我使用该get方法获取一个普通的JavaScript Array对象,最后我可以调用该join方法生成一个字符串.

这里查看上面的例子.