我需要将动态javascript函数与复选框以及数组中的其他数据相关联。例如。我有以下javascript数组:
var arr = ['hello', 'world'];
arr.unshift('buddy');
var index = 1;
arr.unshift('<input type="checkbox" id = "' + index + '" onchange="boxChange(" + index + ")>');
上述数组中的第一个元素是具有onchange事件的复选框。该事件触发传入索引的函数boxChange。
但上面的复选框事件不起作用,我猜语法(引号)不对。我需要一些帮助来纠正&#34;报价&#34;。感谢
我在jsFiddle中编写了一个不完整的代码http://jsfiddle.net/qq0dsz0f/
答案 0 :(得分:1)
一般来说,混合标记和逻辑并不是一个好主意。你可以亲眼看到 - 一旦你开始想要以非平凡的方式操纵DOM,事情变得非常多毛,非常快。你不应该担心你的报价是正确的,而你也不必担心!
jQuery允许您自己创建一个元素,然后将各种事件处理程序附加到它,然后存储它,将它添加到您的文档中等。
// First, let's create the element itself.
var element = $('<input type="checkbox" id="' + index + '">");
// Now, let's attach the logic.
element.on('change', function() {
alert(index);
});
// Now do whatever you want with 'element'.
这种语法不是更清晰吗?
其次,如果你碰巧在循环中使用它,你可能会得到一些奇怪的行为,因为函数如何捕获`index'的值。如果是这种情况,您可能希望看到this question on capturing variables in JavaScript。