我试着使用内部HTML和动态集,其中包含一个变量一个onclick声明:报价中的报价变量?
cell5.innerHTML="<input type='button' value='Remove' onclick='removerow('manual_" + (num) + "')' />"
因此,可以说num变量设置为4输出应该onclick="removerow('manual_4')"
任何帮助吗?
我试着使用内部HTML和动态集,其中包含一个变量一个onclick声明:报价中的报价变量?
cell5.innerHTML="<input type='button' value='Remove' onclick='removerow('manual_" + (num) + "')' />"
因此,可以说num变量设置为4输出应该onclick="removerow('manual_4')"
任何帮助吗?
可以使用\
转义嵌套的报价:
"...onclick=\"removerow('manual_" + (num) + "')\"..."
完美。我在11分钟内接受。 –
请考虑阅读Felix答案,这就是DOM元素应该如何插入到DOM中。 –
@Jose Faeti我这样做了,并且认为它更好,尽管这个答案是针对“嵌套引号”问题的。 –
可以使用\
逃脱引号所以
onclick=\"removerow('manual_" + (num) + "')\"
cell5.innerHTML='<input type="button" value="Remove" onclick="removerow(\'manual_' + (num) + '\')" />'
最好的事情是避免所有这一切:
var input = document.createElement('input');
input.type = 'button';
input.value = 'Remove';
input.onclick = function() {
removerow('manual_' + num);
};
cell5.appendChild(input);
根据按钮,单元格和要删除的行之间的关系,还可以在处理程序中执行DOM遍历以获取对该行的引用。
+1这是处理DOM元素的正确方法。 –
@Felix是的,我后来意识到这是一个正确和更有效的方法,但在这一点上,它只是太多的努力来改变,我没有时间(这一个输入是一行的一部分部分这是通过javascript) –
@Jonah:无论什么最适合你,只是显示替代品,不用担心:) –
请考虑使用click事件。它使这种事情更清晰:
$(".cell5") // whatever selector you want
.html('<input type="button" value="Remove"/>')
.click(function(){
removerow('manual_' + row);
});
也考虑使用行号作为输入,而不是字符串。如果它们都具有相同的形式,你可以只用简化的东西:
removerow(row);
显然这是一个API的设计决定的,但如果它是有道理的,将简化这个表达式。
您是否必须为事件处理程序使用HTML属性?如果您从JS设置处理程序,则此问题不存在。 –