首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript构建动态字符串

Javascript构建动态字符串
EN

Stack Overflow用户
提问于 2011-11-08 21:15:10
回答 4查看 5.1K关注 0票数 0

我需要为每个数据构建一个动态字符串。当事件单击将调用函数时,此字符串将设置一个HTML按钮。我对“e”有点问题。如下例所示:

代码语言:javascript
复制
var stringButton = ""; 
var txtBtn = "My Button";
for(item in data){
     stringButton= "<input id='btn-" + item.id + "' type='button' href='#'
class='fbbutton'" + "value=' " + txtBtn + "' onclick='actionBtn(" + item .id + ", '" + 
item .name + "')'>";
}

function actionBtn(id, name) {
//process data.
}

在inspect元素中,我看到:

代码语言:javascript
复制
<input id="btn-1599" type="button" href="#" class="fbbutton" value=" My Button " 
onclick="actionBtn(1599, " itemName"" jjjj')'=""> 

问题是创建字符串,它调用传递参数字符串的方法。正如我们所看到的,“and‘是错误的。正确的方法是什么?”

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-11-08 21:26:20

在解析器处理完DOM之后,DOM检查器会向您显示DOM。它不会显示原始源代码。诸如“使用了哪种类型的引号”、“属性的顺序是什么”、“属性之间有多少空格字符”之类的内容不会被保留。

在这里,您可以看到所有属性都用双引号括起来,但它们也包含双引号。但您也会注意到,值中的值被颜色编码为字符串的一部分(通常为蓝色)。

也就是说,在源代码中,您在属性值两边使用了单引号,并在其中使用了单引号。考虑使用双引号来代替其中之一(在这里转义为\" ),或者使用&quot;实体。

最后,欢迎来到Stack Overflow。请先接受先前问题的答案,然后再提出新问题。

票数 0
EN

Stack Overflow用户

发布于 2011-11-08 21:19:55

IMO的正确方式是使用DOM创建方法并正确绑定事件处理程序,而不是使用内联事件处理程序。

代码语言:javascript
复制
var button = document.createElement('input');
button.id = item.id;
button.type = "button";
button.className = "fbbutton";
button.value = txtBtn;
button.onclick = (function(item) {
    return function() {
        actionBtn(item.id, item.name);
    };
}(item));
票数 1
EN

Stack Overflow用户

发布于 2011-11-08 21:23:54

在您的item.name中肯定有一个‘或’,所以它切断了您正在构建的字符串。

试着逃离他们

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8050953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档