jquery - 在 html 代码中插入 javascript 函数

标签 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。

但是上面的复选框事件不起作用,我猜语法(引号)不正确。我需要一些帮助来纠正“引号”。谢谢

我在这里用 jsFiddle 编写了不完整的代码 http://jsfiddle.net/qq0dsz0f/

最佳答案

一般来说,混合标记和逻辑并不是一个好主意。您可以亲眼看到——一旦您开始想要以不平凡的方式操作 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 .

关于jquery - 在 html 代码中插入 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27801252/

相关文章:

javascript - 显示具有事件目标的对象的属性

javascript - node.js 在一定时间后发出事件

checkbox - Slickgrid:如何使用新的复选框选择列插件获取选定的行?

javascript - 通过ajax提交表单不起作用

jquery - 使用ajax启用禁用jquery ui按钮

javascript - 通过 AJAX 更新 Pickadate 输入

javascript - 循环输入字段;两次迭代后停止

javascript - 为什么我的 JavaScript 向上/向下滚动事件不起作用?

javascript - AngularJS如何获取 bool 值

jsf-2 - ui 内的 Primefaces ManyCheckbox :repeat calls setter method only for last loop