2012-02-07 49 views
1

我有一個表格上有幾個<select>元素。jQuery:檢查頁面上所有的<select>的值

我想檢查所有select元素的值是否爲'0'。我怎樣才能優雅地做到這一點?

目前我有這樣的:

var all_zero = true; 
$('myform select').each(function() { 
    if ($(this).val() !== '0') { 
     all_zero = false; 
    } 
}); 
if (all_zero) { //do something 

有誰知道一個更好的辦法做到這一點?

回答

0

這是做到這一點的正確方法,讓它變得更清潔的一種方法是隻在需要時聲明變量。像這樣:

$('myform select').each(function() { 
    if ($(this).val() !== '0') { 
     some_zero = true; 
    } 
}); 
if (!some_zero) { //do something 
+0

可能濾清器讀取代碼方面,但你最終與可能沒有必要在那裏變量污染全局範圍。 – 2012-02-07 16:29:03

+0

你是對的,當然。我正在考慮在全球範圍內執行此操作,所以all_zero的聲明方式與之相同。對不起 – 2012-02-07 16:34:00

3

測試選擇器中的值。

var non_zero = $('myform select[value!="0"]').length; 

if (non_zero === 0) { //do something 

所以,如果沒有select不具有價值"0"non_zero === 0true

+1

+1好利用Selector API ... – xandercoded 2012-02-07 16:22:48

0

你的代碼是好的,你可以嘗試:

var all_zero = $('myform select').filter(function(){return $(this).val()!='0'}).length>0 
相關問題