我不知道jquery中的循环。我希望从product1到product20的循环运行以下代码,如果quantity1到quantity20没有值则检查相同,然后将其设置为1.
$('#product1').change(function() {
if( $('#quantity1').val().length == 0 ){
$('#quantity1').val("1");
}
});
$('#product2').change(function() {
if( $('#quantity2').val().length == 0 ){
$('#quantity2').val("1");
}
});
提前谢谢。
答案 0 :(得分:3)
我认为each
方法在这里是最好的解决方案,因为你需要一个匿名函数来创建一个包含每个迭代值的closuse(因为事件处理程序稍后运行,每个都需要它自己的版本的循环计数器):
$.each(new Array(20), function(i){
$('#product' + (i+1)).change(function() {
var q = $('#quantity' + (i+1));
if (q.val().length == 0 ){
q.val("1");
}
});
});
答案 1 :(得分:1)
您可以尝试为id
以product
$('input[id^="product"]').change(function() {
var len=$(this).attr('id').length;
var q='#quantity'+$(this).attr('id').substr(7);
if($(q).val().length == 0 ){
$(q).val(1);
}
});
答案 2 :(得分:0)
阅读this以获取有关jquery中循环的更多信息。
使用选择器开始选择控件。请阅读this了解详情。
您可以使用如下的jQuery函数:
$('input[id^="product"]').each(function(index) {
$(this).change(function() {
if( $(this).val().length == 0 ){
$(this).val("1");
}
});
}
答案 3 :(得分:0)
只需使用普通的Javascript循环
for (i=0; i<5; i++)
{
$('#product'+i).change(function() {
if( $('#quantity'+i).val().length == 0 ){
$('#quantity'+i).val("1");
}
});
}