0

divに挿入するJavaScript関数を使用してHTMLスニペットを作成しています。

渡された変数の引用符/二重引用符の折り返しを動的に行う方法がわかりません。

var vLC = "zh-CN"

var vHtml = "<input type='radio' id='rbtn1' onclick='renderList(" + vLC + ");' />";

このコードは次のようにレンダリングします:onclick = "renderList(zh-CN);"

レンダリングする必要があります:onclick = "renderList('zh-CN');"

コードを知っている天才はいますか?

4

3 に答える 3

2

文字列をマッシュアップしてドキュメントを変更しないでください。維持するのは価値があるよりも苦痛です。

var element = document.createElement('input');
element.type = "radio";
element.id = "rbtn1";
element.addEventListener('click', function () {
    renderList(vLC);
});

これは一般的なルールです。ある言語 (プログラミング、テンプレート作成、データのシリアル化など) を別の言語で処理している場合、苦痛に遭遇します。別のレイヤー (ここでは JS 内の HTML 内の JS) を追加すると、恐ろしい痛みが生じます。

常に API を使用してドキュメントを構築するか、各レイヤーを順番に構築し、エスケープ ルーチンを介して実行した後に次のレイヤーに追加します。

于 2013-03-06T00:00:50.083 に答える
0

www.jsbin.com を助けてください! - Remy Sharp @rem に感謝:-D

解決策は、onclick アクションに変数を使用することでした。

var vLanguageCode = "us-EN";
var vOnclick = 'renderList("' + vLanguageCode + '")';
vHtml = "<input type='radio' id='rbtn1' onclick=" + vOnclick + " />";

単純化、単純化...

于 2013-03-06T00:48:43.793 に答える
0
var vLC = "zh-CN"

var vHtml = "<input type=\"radio\" id=\"rbtn1\" onclick=\"renderList('" + vLC + "');\" />";
于 2013-03-06T00:06:01.123 に答える