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";

ただし、結果を表示しようとすると、表示されるのはブループではなく、何とかです。

助言がありますか?

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が含まれている場合'は、再び問題が発生します。したがって、それらを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 に答える