2016-02-06 34 views
1

如果單選按鈕未選中,下面的代碼隱藏了一個部分。jquery操作具有給定模式的元素的數量

if ($('#Items_0__Suffix:checked').val() === 'No') { 
     $('#section0').hide(); 
    } 

現在,如果我們有多個項目,什麼是寫代碼,而不是代碼像下面的簡潔的方式:

if ($('#Items_0__Suffix:checked').val() === 'No') { 
     $('#section0').hide(); 
    } 
if ($('#Items_1__Suffix:checked').val() === 'No') { 
      $('#section0').hide(); 
     } 
+0

它看起來像你的選擇器使用迭代模式。運行它通過一個循環('var i' for index)和'$('#Items _'+ i +'__後綴:checked')。val()' –

+0

html結構是什麼樣的?可能根本就不需要身份證 – charlietfl

回答

0

也許一個for循環?

for (var i = 0; i <= amountOfButtons; i++) { 
    if ($('#Items_' + i + '__Suffix:checked').val() === 'No') { 
     $('#section0').hide(); 
    } 
} 

或甚至在您的選擇器中使用Regex可以做到這一點。

1

假設複選框ID的序號從零開始,並具有其ID也從零開始的相應元素,則可以使用jquery starts with選擇器並使用jquery index()來確定要顯示/隱藏的元素。

$("[id^=Items_]").on("click",function() 
{   
    var index = $(this).index(); 
    !$(this).is(":checked") ? 
    $('#section' + index).hide() : $('#section' + index).show(); 
}); 

實施例:https://jsfiddle.net/97bo2vyb/2/

+0

請注意,這裏假定項目是兄弟姐妹......只需簡單地調整索引項目,無論結構如何https://jsfiddle.net/21wbujc4/ – charlietfl

0

創建一個函數,並通過在上下文。重用剩餘的代碼。例如:

Var doWork = function(context) { 
     If ($(context).val() == 'No') { 
      $('#section0').hide(); 
     } 
} 

這樣您就可以調用相同的函數和代碼進行重用,而不必每次都重複使用。

相關問題