Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将jQuery代码编写为循环结构_Javascript_Jquery_Loops - Fatal编程技术网

Javascript 将jQuery代码编写为循环结构

Javascript 将jQuery代码编写为循环结构,javascript,jquery,loops,Javascript,Jquery,Loops,下面的代码工作得很好,如下所示,但我不能将其作为循环结构编写。我需要一个循环,因为26、27、28是模板文件中Smarty变量的值(因此26、27、28必须替换为基于Smarty变量定义的JavaScript变量) $(文档).ready(函数(){ var name=“产品数据”; $(“#按钮_cart_26”)。单击(函数(){ $('input:radio[name=“”+name+“]”][0]。选中=true; }); $(“#按钮_cart_27”)。单击(函数(){ $('in

下面的代码工作得很好,如下所示,但我不能将其作为循环结构编写。我需要一个循环,因为26、27、28是模板文件中Smarty变量的值(因此26、27、28必须替换为基于Smarty变量定义的JavaScript变量)


$(文档).ready(函数(){
var name=“产品数据”;
$(“#按钮_cart_26”)。单击(函数(){
$('input:radio[name=“”+name+“]”][0]。选中=true;
});
$(“#按钮_cart_27”)。单击(函数(){
$('input:radio[name=“”+name+“]”][1]。选中=true;
});
$(“#按钮_cart_28”)。单击(函数(){
$('input:radio[name=“”+name+“]”][2]。选中=true;
});
});
例如,我试过这样的方法:

<script type="text/javascript">
  $(document).ready(function(){

    var name = "product_data";

    var index;
    var a = [26, 27, 28];
    for (index = 0; index < a.length; ++index) {
        //alert("#button_cart_"+a[index]);      //alert is OK

        $("#button_cart_"+a[index]).click(function () {
          $('input:radio[name="'+name+'"]')[index].checked = true;
        });
    }   

  });
</script>

$(文档).ready(函数(){
var name=“产品数据”;
var指数;
var a=[26,27,28];
对于(索引=0;索引
您能帮忙吗?

您的问题是索引变量。因为它位于for循环中,在单击事件之后使用。为了保留索引值,可以基于一个可能的解决方案

片段:

var name=“产品数据”;
var指数;
var a=[26,27,28];
对于(索引=0;索引

点击我26
点击我27

单击我28
我以为我有一个简单的答案,但结果证明这是一个大脑放屁。你能告诉我们到底是什么不起作用以及控制台中是否有任何错误消息吗?对于循环结构示例,我没有得到与“非循环”代码相同的结果。更确切地说,当单击id为=“#button_cart_27”的HTML按钮时,相应的单选按钮保持未选中状态。盖特纳姆的回答解决了这个问题。
<script type="text/javascript">
  $(document).ready(function(){

    var name = "product_data";

    var index;
    var a = [26, 27, 28];
    for (index = 0; index < a.length; ++index) {
        //alert("#button_cart_"+a[index]);      //alert is OK

        $("#button_cart_"+a[index]).click(function () {
          $('input:radio[name="'+name+'"]')[index].checked = true;
        });
    }   

  });
</script>