Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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
将字符串作为为.setAttribute选择的函数的参数包含到javascript中的按钮_Javascript - Fatal编程技术网

将字符串作为为.setAttribute选择的函数的参数包含到javascript中的按钮

将字符串作为为.setAttribute选择的函数的参数包含到javascript中的按钮,javascript,Javascript,我希望能够使用setAttribute传递字符串作为按钮onclick函数的值。当我点击按钮时,我得到了“添加未定义”的错误,我不确定我做错了什么 var AddButton = document.createElement("button"); var AddString = "add"; var SectorString = "1_1"; AddButton.setAttribute("onclick",'AddOrDeleteDiv(AddString,Se

我希望能够使用setAttribute传递字符串作为按钮onclick函数的值。当我点击按钮时,我得到了“添加未定义”的错误,我不确定我做错了什么

    var AddButton = document.createElement("button");
    var AddString = "add";
    var SectorString = "1_1";
    AddButton.setAttribute("onclick",'AddOrDeleteDiv(AddString,SectorString)');





   function AddOrDeleteDiv(AddString, SectorString) {
//code 
}

众所周知,js没有很好的字符串连接方法,请尝试使用与全局变量名不同的函数参数名,这不是一件好事

var AddButton = document.createElement("button");
var AddString = "add";
var SectorString = "1_1";
AddButton.setAttribute("onclick",'AddOrDeleteDiv(' + JSON.stringify(AddString) + ',' + JSON.stringify(SectorString) + ')');


function AddOrDeleteDiv(addStr, secStr) {
//code 
}
或者,正如@Thomas所说,您可以使用类似的实际javascript事件处理程序,而不是修改属性来分配事件处理程序

AddButton.onclick = function(){AddOrDeleteDiv(AddString,SectorString);}

众所周知,js没有很好的字符串连接方法,请尝试使用与全局变量名不同的函数参数名,这不是一件好事

var AddButton = document.createElement("button");
var AddString = "add";
var SectorString = "1_1";
AddButton.setAttribute("onclick",'AddOrDeleteDiv(' + JSON.stringify(AddString) + ',' + JSON.stringify(SectorString) + ')');


function AddOrDeleteDiv(addStr, secStr) {
//code 
}
或者,正如@Thomas所说,您可以使用类似的实际javascript事件处理程序,而不是修改属性来分配事件处理程序

AddButton.onclick = function(){AddOrDeleteDiv(AddString,SectorString);}

不要使用内容属性事件处理程序!改用事件侦听器:

var addButton = document.createElement("button");
var addString = "add";
var sectorString = "1_1";
addButton.addEventListener('click', function() {
  addOrDeleteDiv(addString, sectorString);
});
function addOrDeleteDiv(addString, sectorString) {
  //code 
}

不要使用内容属性事件处理程序!改用事件侦听器:

var addButton = document.createElement("button");
var addString = "add";
var sectorString = "1_1";
addButton.addEventListener('click', function() {
  addOrDeleteDiv(addString, sectorString);
});
function addOrDeleteDiv(addString, sectorString) {
  //code 
}

尝试用另一组引号封装
“添加”
“添加”
。。。不是100%确定,但这可能会用单引号包装参数,并用双引号替换旧的单引号<代码>AddButton.setAttribute(“onclick”,“AddOrDeleteDiv”(“+add+”,“+SectorString+”)”)不要使用onclick属性,使用属性:
AddButton.onclick=function(){AddOrDeleteDiv(“add”,“1_1”)}
并尝试用另一组引号封装
“add”
。。。不是100%确定,但这可能会用单引号包装参数,并用双引号替换旧的单引号<代码>AddButton.setAttribute(“onclick”,“AddOrDeleteDiv”(“+add+”,“+SectorString+”)”)不要使用onclick属性,使用属性:
AddButton.onclick=function(){AddOrDeleteDiv(“add”,“1_1”)}
看看你必须
JSON.stringify()
AddString
SectorString
的值注入到一段代码中。你不需要单引号来扭曲参数吗?示例
(\''+AddString+'\',
@Thomas no I don't如果您只是将字符串用引号括起来,那么一旦字符串包含相同的引号、反斜杠或换行符,您可能会遇到麻烦。这意味着您需要正确的转义。JSON.stringify是将字符串转换为正确格式的字符串文字的最佳方法(-string)。就像它是为这个任务构建的一样。@Thomas好吧,你是正确的,但是无论如何,属性修改对于这个问题来说是不必要的开销。无论如何,我会纠正它的。你必须
JSON.stringify()
AddString
SectorString
的值注入到一段代码中。是否需要单引号来扭曲参数?示例
(\''+AddString+'\',
@Thomas no I don't如果您只是将字符串用引号括起来,那么一旦字符串包含相同的引号、反斜杠或换行符,您可能会遇到麻烦。这意味着您需要正确的转义。JSON.stringify是将字符串转换为正确格式的字符串文字(-String)的最佳方法。就像它是为这个任务构建的。@Thomas好吧,你是对的,但是无论如何,属性修改对于这个问题来说是不必要的开销。无论如何,我会纠正itlistener关于什么的?:)你错过了添加事件name@MarkoMackic谢谢你告诉我什么?:)你错过了添加活动name@MarkoMackic谢谢