2012-03-16 63 views
0

我还不熟悉jQuery,因此很难获得正确的语法。 我试图根据是否选中复选框,一次选择或取消选择selectlist元素的所有元素。如何选择/取消选择使用jQuery的选择列表中的所有选项?

我发现了一些帮助,在这里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分支中做 - 但我无法让这部分工作。

我见过很多其他迭代选择元素的例子,但我希望得到这个更清晰的语法来工作,如果可以的话。

TIA, rixter

+1

你试试这个? $('form select option')=> $('#marketlist option')不知道我明白了这个问题。 – InfinitiesLoop 2012-03-16 22:28:04

+0

如果可以的话,做一个小提琴。我想看看这个HTML。 – Sethen 2012-03-16 22:28:44

回答

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

+0

谢谢!这很好用! – rixter 2012-03-20 17:47:40

+0

你非常欢迎;我很高兴能有帮助=) – 2012-03-20 17:49:02

0

试试这个

$(".someClass option").attr("selected", "selected"); 
相关问题