如何使用jQuery选择/取消选择选择列表中的所有选项?

时间:2012-03-16 22:23:13

标签: jquery

我还不熟悉jQuery,所以很难让语法正确。 我试图根据是否选中复选框,一次性选择或取消选择selectlist元素的所有元素。

我在SO处找到了一些帮助,但经过大量的观察和测试后,需要向社区提问......

在下面的if / else分支中,else分支正常工作:

   if ($('input[name="select_markers"]:checked').length > 0) {
        $("#markerlist").prop('selected',true);
    } else {
        $('form select option').prop('selected',false);
    }

但是,这会影响表单中的所有选择元素,这是我不想要的。我只想影响元素#markerlist,我试图在if分支中做 - 但我不能让这部分工作。

我已经看过很多其他迭代select元素的例子,但是如果可以的话,我想让这个更干净的语法工作。

TIA, rixter

2 个答案:

答案 0 :(得分:1)

我建议:

$('input[name="select_markers"]').change(
    function(){
        if ($(this).is(':checked')){
            $('#markerlist').find('option').prop('selected','selected')
        }
        else {
            $('#markerlist').find('option').prop('selected',false)
        }
    });

JS Fiddle demo

答案 1 :(得分:0)

试试这个

 $(".someClass option").attr("selected", "selected");