我想将几个参数传递给setAttribute()
方法
参数是:
var obj = string/this;
var mal_pat_id = "avx";
instruction = "some_instruction";
line = ['a','b','c'];
var newSelect = document.getElementById("dialog_ok_btn_for_mal_pat_conf_yes");
newSelect.setAttribute('onclick', "add("+ obj +","+ mal_pat_id + "," + instruction + "," + line + ")");
参数行作为字符串传递,应作为数组传递。
提前谢谢。
答案 0 :(得分:7)
您应该使用 addEventListener()
方法:
newSelect.addEventListener("click", function(){
add(obj, mal_pat_id, instruction, line);
});
希望这有帮助。
答案 1 :(得分:1)
为什么要使用set属性进行事件监听。直接使用onclick
属性直接执行此操作:
newSelect.onclick = function() {
add(obj, mal_pat_id, instruction, line);
}
或者更好的是这样:
newSelect.addEventListener("click", function() {
add(obj, mal_pat_id, instruction, line);
});
注意:这不适用于所有类型的属性。
答案 2 :(得分:0)
您可以通过用“ []”包围数组来实现所需的功能,这会使函数看起来像是数组
newSelect.setAttribute('onclick', "add("+ obj +","+ mal_pat_id + "," +instruction + "," +"[" +line+ "]"+ ")");
这会将数组行的所有数组元素设置为['a','b','c'],而不是将其设置为'a','b','c',这将使函数识别它们作为单个变量