在html代码中插入javascript函数

时间:2015-01-06 14:58:09

标签: jquery events checkbox onchange

我需要将动态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/

1 个答案:

答案 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