-1

\' を使用できることはわかっていますが、それはここでは重要ではありません。「できない」という言葉があるとしましょう。現在は「'」が含まれています。これは、次のように関数の var に入ります。

function active(id,clas,match,hometeam,awayteam){

では、ホームチームが「できない」という値を持っているとしましょう。このコードを使用しようとすると:

$('#test').html(hometeam + " VS " + awayteam);

基本的に次のようなものがあるため、機能していません。

$('#test').html(can't + " VS " + awayteam);

これを解決するにはどうすればよいですか?

編集:

問題はjQueryにはないと思います。この関数を呼び出す行は次の行です。

<input type="button" id="btn" value="1.4" class="butta" onmousedown="active('btn','buttdowna','match1','hometeam','awayteam')" />

では、どうすればこれを回避できますか?

編集:完璧な解決策が見つからなかったので、データベース内の単語を変更し、「\」を追加しました...

4

4 に答える 4

0

これはうまくいくはずです。内容に二重引用符が含まれている場合は、文字列を一重引用符で囲み、内部で一重引用符をエスケープします。

var hometeam = '"can\'t"';
$('#test').html(hometeam + 'VS' + awayteam)
于 2012-06-30T21:19:50.777 に答える
0

変数によって返される値は、javascript でエスケープする必要はありません。問題がある場合は、他の根本的な問題があります。

can't編集:質問の編集ごとに、必要なパラメーターの1つとして使用する場合、関数呼び出しで値をエスケープする必要があります

<input type="button" id="btn" value="1.4" class="butta" onmousedown="active('btn','buttdowna','can\'t','hometeam','awayteam')" />

于 2012-06-30T21:19:58.823 に答える
0

問題は、文字列操作を使用して HTML を作成していることです。代わりに jQuery/DOM メソッドを使用すれば、問題は発生しません。

別の方法は引用符をエスケープすることですが、以前の提案と比較すると、それは本当に醜いです。


PHP で HTML を作成しているので、次のようにします。

echo '<input type="button" id="btn" value="1.4" class="butta" onmousedown=\'active("btn","buttdowna","match1",'.htmlspecialchars(json_encode($foo)).', '.htmlspecialchars(json_encode($bar)).');\' />';
于 2012-06-30T21:37:17.160 に答える
0

このように HTML パーツを変更することができます。

<input type="button" id="btn" value="1.4" class="butta" onmousedown=active("btn","buttdowna","match1","can't","awayteam") />

引用符なしの HTML 属性でも機能します。グループ化には引用符が使用されます。例) title="Click Event" が動作し、title=Click Event は最初の値 (Click) のみを取ります。つまり、単語にスペースが含まれていない場合、引用符は必要ありません。

于 2012-07-01T01:57:35.443 に答える