Jquery 在html代码中插入javascript函数

Jquery 在html代码中插入javascript函数,jquery,events,checkbox,onchange,Jquery,Events,Checkbox,Onchange,我需要将动态javascript函数与checkbox以及数组中的其他数据相关联。例如我有以下javascript数组: var arr = ['hello', 'world']; arr.unshift('buddy'); var index = 1; arr.unshift('<input type="checkbox" id = "' + index + '" onchange="boxChange(" + index + ")>'); var-arr=['hello','w

我需要将动态javascript函数与checkbox以及数组中的其他数据相关联。例如我有以下javascript数组:

var arr = ['hello', 'world'];
arr.unshift('buddy');
var index = 1;
arr.unshift('<input type="checkbox" id = "' + index + '" onchange="boxChange(" + index + ")>');
var-arr=['hello','world'];
取消移位(“伙伴”);
var指数=1;

arr.unshift(“一般来说,混合使用标记和逻辑不是一个好主意。你自己可以看到——只要你开始想以非平凡的方式操纵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'.
//首先,让我们创建元素本身。
变量元素=$('”);
//现在,让我们附加逻辑。
on('change',function(){
警报(索引);
});
//现在用“元素”做你想做的任何事情。
这个语法不是更简洁吗


其次,如果您碰巧在循环中使用它,您可能会得到一些奇怪的行为,因为函数是如何捕获“index”的值的。如果您希望看到这种情况。

是否有理由使用内联事件处理程序而不是不引人注目的样式?对不起,什么是不引人注目的样式?看起来您已经知道如何使用内联事件处理程序了a在js中输入一个字符串,对第二个
index
变量也这样做。但是你的引号不匹配…在控制台中检查html本身,会发现你的引号被打断。使用正确的转义和匹配。问题中代码的语法突出显示也应该是一个clue。实际上,如果使用deleg,它可能会变得更干净ate。然后您只需要附加一次处理程序:
$('#table1')。在('change','input[type=“checkbox”]”上,函数(e){alert($(this).attr('id');}
这是一个更干净的处理程序。整洁!此外,您应该提到他不能只为(即索引)使用数字对于他的id属性…它需要以字母开头…所以像
checkbox-1
这样的东西可以,但是
1
不是。@prodigitalson这在html5规范中不是真的,数字id是真的allowed@charlietfl有趣的是…我不知道。我实际上还没有完全审查过规范,只是一些较新的特性。非常很想知道,如果没有前缀,我想我会避免它,因为它可能会与
id
中的其他内容混淆。