我需要的是能够将字符串传递给javascript函数,该函数在div的onclick事件中指定,
$("#div").html("<div id='suggestion' onclick='storetag("+response[i]['tagname']+")'><div id='postag' ><center><b>"+response[i]['tag']+"</b></center></div></div>");
在这里我无法将响应[i] [&#39;标记名&#39;]传递给storetag(),因为它是一个字符串并且需要围绕它的quetos
答案 0 :(得分:0)
不要使用内联JS,而是必须处理字符串中包含的代码,请执行以下操作:
var div = $('<div id="suggestion"><div id="postag"><center><b></b></center></div></div>');
div.find('b').html(response[i]['tag']).on('click', function() {
storetag(response[i]['tagname']);
});
$("#div").html(div);
这样您首先创建DOM,然后正确附加事件处理程序,而不必将JS代码放在字符串中。
如果您在循环中运行该代码(i
可能会这样做):
id="suggestion"
。 ID必须是唯一的!使用以下JS代码,以便在处理程序执行时使用正确的i
值:
var div = $('<div id="suggestion"><div id="postag"><center><b></b></center></div></div>');
div.find('b').html(response[i]['tag']);
(function(tagname) {
div.on('click', function() {
storetag(tagname);
});
})(response[i]['tagname']);
$("#div").html(div);
答案 1 :(得分:0)
您需要在值周围的字符串中加上引号:
$("#div").html("<div id='suggestion' onclick='storetag(\""+response[i]['tagname']+"\")'><div id='postag' ><center><b>"+response[i]['tag']+"</b></center></div></div>");
答案 2 :(得分:0)
试试这个
$("#div").html("<div id='suggestion' onclick='storetag(\""+response[i]['tagname']+"\")'><div id='postag' ><center><b>"+response[i]['tag']+"</b></center></div></div>");
这里我添加了“代码中的转义
”