2014-12-19 79 views
0

我正在使用jQuery顯示和隱藏一組單選按鈕。我正在做的是我顯示所有的單選按鈕,然後隱藏它。爲什麼我不能在相對的單選按鈕上顯示?我正在顯示基於所選年份的單選按鈕。請檢查小提琴,以便您可以獲得足夠的上下文。使用jQuery顯示和隱藏單選按鈕

我的代碼是

$('.ncbclaim-slider-noclaim input:radio[name="form.details.insurancePolicyToTransfer.noClaimBonusInBPS.noClaim"]').parents('.claim-details-tooltip').show(); 
$('.ncbclaim-slider-noclaim input:radio[name="form.details.insurancePolicyToTransfer.noClaimBonusInBPS.noClaim"]').not(':lt('+(noNcbYear + 1)+')').parents('.claim-details-tooltip').hide(); 

http://jsfiddle.net/5ept4r74/42/

我可以把它在同一線代碼?我無法弄清楚如何去做。

+0

你的代碼是非常難以遵循。當我遇到這樣的問題並且想要問Stack Overflow的問題時,我通常會做的是創建一個不太複雜的例子。也許它只有2年,你沒有你的瘋狂變量名稱。這段代碼讓我的眼睛受到傷害,非常難以遵循。 – 2014-12-19 06:47:03

+0

看看'end()'http://api.jquery.com/end/ – charlietfl 2014-12-19 07:02:20

回答

0

試試這個:

Demo

$('.ncbclaim-slider-noclaim').addClass('dontshow'); 
$('#eForm_registeredDate').change(function() { 
    $('.ncbclaim-slider-noclaim').removeClass('dontshow'); 
    var currentYear = new Date().getFullYear(); 
    var registeredYear = $(this).val(); 
    $('.ncbclaim-slider .radio-box').show(); 
    if ($(this).val() != '0') { 
     var noNcbYear = currentYear - registeredYear; 

     $('input:radio').filter(function(i,e){ 
      if(i<noNcbYear+1){ 
       $(e).parents('.claim-details-tooltip').show(); 
      } else { 
       $(e).parents('.claim-details-tooltip').hide() 
      } 
     }) 

    } else { 
     $('.ncbclaim-slider-noclaim').addClass('dontshow'); 
    } 
}); 
+0

謝謝Mangesh。對不起。我不明白你寫的過濾功能。我很高興它的工作。你能解釋一下我嗎? – 2014-12-19 07:14:47

+0

'將匹配元素的集合減少爲匹配選擇器或通過函數的測試的元素.'或者,您可以使用'.each()'方法而不是過濾器 – 2014-12-19 07:24:06

+0

您可以在這裏閱讀更多http://api.jquery .com/filter/ – 2014-12-19 07:24:22