如何将字符串作为参数传递给javascript函数

时间:2013-10-27 10:01:17

标签: javascript jquery html

我需要的是能够将字符串传递给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

3 个答案:

答案 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>");

这里我添加了“代码中的转义