Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.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 通过onclick函数传递时,包含字符串的变量为空_Javascript_Function - Fatal编程技术网

Javascript 通过onclick函数传递时,包含字符串的变量为空

Javascript 通过onclick函数传递时,包含字符串的变量为空,javascript,function,Javascript,Function,我试图使用onclick事件将字符串传递到函数中。但是,当我单击链接时,函数中的变量不返回任何内容。它是空的。当我将一个数字作为参数传递时,我没有问题,该参数显示在警报中,没有问题。我不确定我做错了什么 for (var j=0;j<current_order.length;j++){ var note_id = "note" + (j+1); text = text + "<button onClick= 'deleteItemfromOrder("+j+")

我试图使用onclick事件将字符串传递到函数中。但是,当我单击链接时,函数中的变量不返回任何内容。它是空的。当我将一个数字作为参数传递时,我没有问题,该参数显示在警报中,没有问题。我不确定我做错了什么

for (var j=0;j<current_order.length;j++){   
    var note_id = "note" + (j+1);
    text = text + "<button onClick= 'deleteItemfromOrder("+j+")'>Delete</button>";  
    text = text + "<a id = '"+note_id+"' onClick= 'toggleNote("+note_id+")'>Notes</a>";
    alert(text);
}
我尝试了多种方法将字符串作为参数传递给函数,例如:

text = text + "<a id = '"+note_id+"' onClick= 'toggleNote('"+note_id+"')'>Notes</a>";
text=text+Notes;


text=text+”您的问题是缺少引号,数字不需要引号,如中所示

onclick='toggleNote(3)'
但是一根绳子可以

onclick='toggleNote("string")'
同样,使用相同的引号也不起作用

onclick='toggleNote('string')'
意思是你必须做什么

text = text + "<a id = '"+note_id+"' onClick= 'toggleNote(\""+note_id+"\")'>Notes</a>";
text=text+Notes;
但实际上,您应该做的是创建元素

for (var j = 0; j < current_order.length; j++) {
    (function(i) {
        var btn = document.createElement('button');
        var anc = document.createElement('a');

        btn.addEventListener('click', function() {
            deleteItemfromOrder(i);
        });

        btn.textContent = 'Delete';

        anc.addEventListener('click', function() {
            toggleNote("note" + (i+1))
        });

        anc.textContent = 'Notes';
    })(j);
}
for(var j=0;j
还有人可以说为什么这被否决了吗?或者只是引用id,不必担心传递字符串。这很好。无论我看到哪里,javascript中的字符串都使用单引号和双引号一样的语音标记。我如何知道何时何地使用不同的引号,何时使用转义?我认为这是最好的选择led(这些\反斜杠)。@FKhan-如果您有一个属性,并且该属性使用单引号,则该属性中的任何内容都必须使用双引号,否则当您添加单引号时,该属性将关闭,并且由于您的字符串在javascript中是用双引号定义的,因此必须对其进行转义以不关闭字符串文字。
onclick='toggleNote('string')'
text = text + "<a id = '"+note_id+"' onClick= 'toggleNote(\""+note_id+"\")'>Notes</a>";
for (var j = 0; j < current_order.length; j++) {
    (function(i) {
        var btn = document.createElement('button');
        var anc = document.createElement('a');

        btn.addEventListener('click', function() {
            deleteItemfromOrder(i);
        });

        btn.textContent = 'Delete';

        anc.addEventListener('click', function() {
            toggleNote("note" + (i+1))
        });

        anc.textContent = 'Notes';
    })(j);
}