Jquery 具有两个变量的动态id

Jquery 具有两个变量的动态id,jquery,jsp,Jquery,Jsp,我想做一些像- for(var i=0; i < count;i++) { $('#radio_'+i).click(function() { for(var j=0;j < count1;j++) { alert ($('#price_'+i+'_'+j).val()); } }) } for(变量i=0;i

我想做一些像-

for(var i=0; i < count;i++) {
    $('#radio_'+i).click(function() {
       for(var j=0;j < count1;j++) {
          alert ($('#price_'+i+'_'+j).val());
       }
    })
}
for(变量i=0;i
但警报即将发出。“未定义”


我想使id“price_i_j”动态化。

当找不到id时,会发出警报未定义。 您应该调试代码。
第一个
警报($('#wd#u标记'+i+'+j))
并检查它是否存在。然后检查浏览器的错误控制台,是否有任何错误。

在发出警报之前进行检查

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');
          }
       }
    })
}
for(变量i=0;i
在调用每个单击函数时(当用户单击#收音机时),i等于外环的计数(+1),因此如果最大计数为2,则每个单击函数中的“i”将为3-这就是为什么价格未定义为价格,因为价格不存在。你需要做的是从无线电元素中得到i的值,如下所示。我已经创建了一个JSFIDLE,让您看到下面的工作

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");
        }
    })
}​
for(变量i=0;i<3;i++){
$('#radio'+i)。单击(函数(){
VarI=($(this.attr(“id”).substr(6));
$('[id^=price]')。css(“颜色”、“黑色”);
对于(var j=0;j<3;j++){
var s='#price_u'+i+'+j;
console.log($(s.text());
$(s).css(“颜色”、“红色”);
}
})
}​

对不起,你在问什么?我不太确定,这里的大多数人可能也不确定。除非我是个白痴。很可能是这样。你也能显示标记吗?试试alert($(''wd_markup'+i+'+j).length),看看元素是否存在。你已经将
点击事件包装在
循环中,我不确定你想做什么。另外,在编码时,你应该注意终止符
;(分号)
在编写代码的同时,尝试使用
console.log()
在浏览器的开发工具上测试数据,这将使您在对象、数组、json等情况下比
警报
在我放入#wd_markup_0_j+j时可以更好地控制,但当我用变量替换0时,它会给出“未定义的”