Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.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 - Fatal编程技术网

Javascript 如何在jquery中动态生成表达式?

Javascript 如何在jquery中动态生成表达式?,javascript,jquery,Javascript,Jquery,我遇到了一个问题,我动态地生成了复选框的名称,它位于一个循环中,我在名称中添加了循环id,并为表的每一行生成了名称(仍然相同),我试图在jquery中捕获这个变量,表达式很好,但在运行代码时,我遇到了错误未捕获错误:语法错误,无法识别的表达式:“,下面是我的Jquery代码: $('.select_all').on('click',function(){ var id = $(this).attr('id'); console.log("inside

我遇到了一个问题,我动态地生成了复选框的名称,它位于一个循环中,我在名称中添加了循环id,并为表的每一行生成了名称(仍然相同),我试图在jquery中捕获这个变量,表达式很好,但在运行代码时,我遇到了错误未捕获错误:语法错误,无法识别的表达式:“,下面是我的Jquery代码:

 $('.select_all').on('click',function(){
        var id = $(this).attr('id');
        console.log("inside select all click id is :" + id)
        var cbox = "'"+id+"checkBox"+"'";
        var c ="\"input[name="+cbox+"]\"";        
        if($("#" + $(this).attr(id) + " INPUT[type='checkbox']").attr('checked', true)){
            console.log("inside this");         
            $(c).each(function(){
                console.log("inside ckbox")
              this.checked = true;                
        });         
        }else{
            $(c).each(function(){
                this.checked = false; 
            });
            
        }   
 });
这里变量c的形式类似于“input[name='1checkBox']”,这是正确的,但涉及到$(c)。每个部分都会抛出上述错误。有人能告诉我动态表达式是如何在jquery中创建和运行的吗?提前谢谢。

去掉多余的
标记包围选择器:而不是

var c ="\"input[name="+cbox+"]\"";        
简单地做

var c ="input[name="+cbox+"]";        
您可以尝试:

$(`input[name='${cbox}']`)
例如:

const name=“密码”
console.log($(`input[name=“${name}”]`)[0])

我可以通过更改代码来解决我的问题,下面是我使用的JS代码

$('.select_all').on("click", function(event) {
     console.log("inside event propogation")
        event.stopPropagation();
    });

$('.select_all').on('click',function(){
    var id = $(this).attr('id');        
    var cbox = "'"+id+"checkBox"+"'";   
    if(this.checked) {                  
        $("[name="+cbox+"]").each(function(){               
          this.checked = true;                
    });         
    }else {
        $("[name="+cbox+"]").each(function(){       
             this.checked = false;
            
        });
    }               

});

$(“'input””)
无效-你有太多的
引用,我把它放在问题中,让我删除,在代码中引号是正确的。这
如果($(“#“+$(This).attr(id)+“input[type='checkbox']”。attr('checked',true)){
应该改为
如果($(“#”+$”)(This.attr(id)+“input[type='checkbox'])“.is(':checked'){
为什么不使用?“没有它们就无法工作”-好吧,这显然对他们不起作用-所以也许你问错了问题?这是典型的XY问题-你有一个问题a,试图用B来解决,B不起作用,所以你问为什么B不起作用-而是问a。那不起作用,这就是为什么我必须包括引号。更简单地说:
`input[name=“${cbox}]`