Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中将数组传递给setAttribute方法_Javascript - Fatal编程技术网

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

如何在javascript中将数组传递给setAttribute方法,javascript,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',

我想将几个参数传递给
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 + ")");
参数作为字符串传递,该字符串应作为数组传递


提前谢谢。

您应该使用方法:

newSelect.addEventListener("click", function(){
    add(obj, mal_pat_id, instruction, line);
});

希望这有帮助。

为什么要使用set属性进行事件侦听。直接使用
onclick
属性执行此操作,如下所示:

newSelect.onclick = function() {
      add(obj, mal_pat_id, instruction, line);
}
newSelect.addEventListener("click", function() {
      add(obj, mal_pat_id, instruction, line);
});
或者像这样更好:

newSelect.onclick = function() {
      add(obj, mal_pat_id, instruction, line);
}
newSelect.addEventListener("click", function() {
      add(obj, mal_pat_id, instruction, line);
});

注意:这不适用于所有类型的属性。

您可以通过在数组周围加上“[]”来实现所需的功能。这将使它看起来像函数的数组

newSelect.setAttribute('onclick',“add”(“+obj+”,“+mal_pat_id+”,“+instruction+”,“+”[“+line+”]“+”))


这会将数组行的所有数组元素设置为['a'、'b'、'c'],而不是将它们设置为'a'、'b'、'c',这会使函数将它们标识为单个变量

这会将“line”参数作为数组而不是字符串传递吗?正如针对此问题提出的问题一样。可以使用
add(“+obj+”、“+mal_pat_id+”、“+instruction+”、“+line+”)
简单地传递字符串。但我认为OP不想先传递字符串,然后再拆分它..这不是你要找的@Rohan吗?