2012-02-29 88 views
0

動態ID我想要做的事喜歡 -兩個變量

for(var i=0; i < count;i++) { 
    $('#radio_'+i).click(function() { 
     for(var j=0;j < count1;j++) { 
      alert ($('#price_'+i+'_'+j).val()); 
     } 
    }) 
} 

但警報來了「undefiend」

我想使ID'price_i_j'動態。

+2

我很抱歉,你有什麼事要問?我不完全確定,這裏的大多數人可能都不是。除非我是個白癡。這可能是。 – Zyerah 2012-02-29 06:26:53

+0

你可以顯示標記嗎? – Starx 2012-02-29 06:34:43

+0

嘗試警報($(「#wd_markup _」 + I +「_」 + J)。長度),看看是否存在的元素,你 – charlietfl 2012-02-29 06:36:51

回答

0

警報不確定來當編號找不到。 您應該調試代碼。 首先alert($('#wd_markup_'+i+'_'+j));並檢查它是否存在。之後檢查瀏覽器的錯誤控制檯,是否有任何錯誤。

+1

當我把#wd_markup_0 _'+ j它工作正常,但是當我用一個變量取代0它給'未定義' – make 2012-02-29 06:45:35

0

給予警告

for(var i=0; i < channelCount;i++) { 
    $('#radio_'+i).click(function() { 
     for(var j=0;j < dopCount;j++) { 
      if($('#price_'+i+'_'+j).length){ 
       alert ($('#price_'+i+'_'+j).val()); 
      }else{ 
       alert('#price_'+i+'_'+j + ' does not exist'); 
      } 
     } 
    }) 
} 
0

在點每次點擊功能之前,做一次檢查是所謂的(當用戶點擊#radio)i等於外環(+1)的數量,因此,如果計數最大爲2,那麼「i」在每個點擊函數中都是3 - 這就是價格未定義的原因,因爲price_3不存在。你需要做的是從無線電元素中獲得我的價值,如下所示。我已經創建了一個jsfiddle讓你看到下面的工作。

for (var i = 0; i < 3; i++) { 
    $('#radio_' + i).click(function() { 
     var i = ($(this).attr("id").substr(6)); 
     $('[id^=price]').css("color", "black"); 
     for (var j = 0; j < 3; j++) { 
      var s = '#price_' + i + '_' + j; 
      console.log($(s).text());    
      $(s).css("color", "red"); 
     } 
    }) 
}​ 

jsFiddle