如何获得具有某个类的所有元素的值

时间:2014-07-04 01:19:56

标签: jquery

我有一个列表(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作为字符串?

1 个答案:

答案 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已经拥有该类,则不会将其删除:

WORKING JSFIDDLE DEMO

但如果你用.toggleClass()代替.addClass()这就是它的工作原理:

WORKING JSFIDDLE DEMO