JavaScript中的连接字符串问题

时间:2013-03-01 20:08:46

标签: javascript html concatenation

嘿我试图用javascript连接字符串但是我有错误。这是我的代码:

function popForm(){
   var v = document.getElementById('a1').innerHTML;

   document.getElementById("a1_i").innerHTML =
      "<input type='text' name='a1_i' value="+v+" />";
}

元素a1_i是我使用上面显示的输入标记填充的范围。

再往下我编辑ID为a1的元素:

document.getElementById("a1").innerHTML="blah bloop";

然而,当我试图查看结果时,我所能看到的只是啰嗦,而不是臃肿。

有什么建议吗?

2 个答案:

答案 0 :(得分:3)

如果您查看生成的HTML,您会注意到以下内容:

<input type='text' name='a1_i' value=blah bloop />

正如语法高亮显示器所暗示的那样,value属性的值为blah,而bloop是另一个属性。你只需要添加引号:

function popForm(){
  var v = document.getElementById('a1').innerHTML; 
  document.getElementById("a1_i").innerHTML="<input type='text' name='a1_i' value='" + v   + "' />";
}

但如果v包含符号',那么您再次陷入困境。所以你要么用HTML entities替换它们,要么遵循jbabey的建议。

答案 1 :(得分:1)

我同意Jbabey,它将在未来为您节省额外的text / html字符串编码(容易出错)。 JavaScript连接非常简单

*variable1 + "Text, note quotes around" + variablearray[1] + "etc...";*

使用方法:document.createElement document.createTextNode appendChild

https://developer.mozilla.org/en-US/docs/DOM/document.createElement https://developer.mozilla.org/en-US/docs/DOM/Node.appendChild