如何在javascript中将数组传递给setAttribute方法

时间:2017-02-14 10:54:00

标签: javascript

我想将几个参数传递给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 + ")");

参数作为字符串传递,应作为数组传递。

提前谢谢。

3 个答案:

答案 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',这将使函数识别它们作为单个变量