我有一个列表(li)的项目,点击后,我想获得具有特定类的每个项目的值。然后将它们添加到数组中。
<ul id="list">
<li value="1" class="selected">One</li>
<li value="2">Two</li>
<li value="3" class="selected">Three</li>
</ul>
$('#list li').click(function(){
$(this).addClass('selected');
values = new array();
each(function(){
if('#list li').hasClass('selected') {
values[] = $('#list li').val();
}
});
});
所以我们正在做的是获取包含类&#34;所选&#34;的列表元素的所有值。并将它们添加到数组中。所以在上面的例子中,我们希望最终结果是一个带有数组(1,3)的变量。并且该变量可以通过ajax传递吗?或者它只需要等于1,3作为字符串?
答案 0 :(得分:1)
您可以使用.map()
方法。变量value
是一个数组,其li
个元素的所有值均为selected
类:
$('#list li').click(function(){
$(this).addClass('selected');
var values = $('#list li.selected').map(function(i,v) {
return v.value;
}).get();
});
如果li
已经拥有该类,则不会将其删除:
但如果你用.toggleClass()
代替.addClass()
这就是它的工作原理: