2012-03-16 105 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"); 
相關問題