Javascript 通过onclick函数传递时,包含字符串的变量为空
我试图使用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+")
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);
}