1

アポスロープ/シングル クォーテーションを含む文字列の TextNode を作成しようとしました。しかし、それは常に失敗します。ここに私のサンプルコードがあります:

var theText= "John's car";
var str = "var par= document.createElement('p');";
str += "par.style.textAlign='left';";
str += "var fnt= document.createElement('font');";
str += "var txt = document.createTextNode('" + theText  + "');";
str += "fnt.appendChild(txt);";
str += "par.appendChild(fnt);";
str += myDiv + ".appendChild(par);";
eval(str);
4

4 に答える 4

3

えーと…なんでそんなことするの?

var theText= "John's car";
var par= document.createElement('p');
par.style.textAlign='left';
par.appendChild(document.createTextNode(theText));
myDiv.appendChild(par);
于 2013-06-18T03:51:26.910 に答える
0

ジョンの車で ' を維持したい場合は、ジョンの車
または ('p') と同じくらい簡単です (\'p\')

于 2013-06-18T03:51:54.940 に答える
0

evalの代わりに関数を使用する必要があると思います。それは多くの問題を解決します:

function addNode(myText, myDiv) {
  par= document.createElement('p');
  par.style.textAlign='left';
  fnt= document.createElement('font'); // font is not supported in HTML 5. Use CSS styles instead.
  txt = document.createTextNode(myText);
  fnt.appendChild(txt);
  par.appendChild(fnt);
  myDiv.appendChild(par);
}

addNode ("John's car", targetDiv);
于 2013-06-18T03:56:34.073 に答える
0

文字列の中に がある場合は、'それを a に置き換えれば\'、すべて正常に動作するはずです。たとえば、最初の行は次のように変更する必要があります。

var theText= "John's car";

これに:

var theText= "John\'s car";
于 2013-06-18T03:51:31.860 に答える