3

嘿,我正在尝试用 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";

但是,当我尝试查看结果时,我只能看到 blah,而不是 bloop。

有什么建议么?

4

2 回答 2

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包含 symbol ',那么你又遇到了麻烦。因此,您要么应该将它们替换为HTML 实体,要么遵循 jbabey 的建议。

于 2013-03-01T20:32:58.100 回答
1

我同意 Jbabey,它将为您节省额外的文本/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

于 2013-03-01T20:31:26.660 回答