3

给定以下 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 是否有可能返回一个字符串,一个具有名称值的变量:

alert(tagliststring);

会提醒:45,1146,13437,51

谢谢

4

3 回答 3

7

您可以使用以下each功能:

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

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

有关详细信息,请参阅jQuery 文档

一个更小的方法是使用 jQuery 的map函数:

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

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

于 2010-03-22T02:05:22.587 回答
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方法来生成一个字符串。

在这里查看上面的例子。

于 2010-03-22T02:09:52.250 回答
0
var output; 
$('li a').each( function() { output += $(this).attr('name') + ','; });

请注意,这将在最后输出一个额外,的。

于 2010-03-22T02:05:16.503 回答