1

私の質問にどのテンプレートエンジンが使用されたかはつぶやきません。

私はJSPページでそのようなコードを見つけるプロジェクトに関与しました:

<li class="clazz" attr="XXX">...</li>

attr属性から値を抽出する jQuery コード:

$(".clazz").click(関数 () {
   var v = $(this).attr("attr");
   ...
}

実はXXXはURLです。JSP コードを次のように変更します。

<li class="clazz"><a href="XXX">...</a></li>

および JS コードを次のように使用します。

$(".clazz").click(関数 () {
   var v = $(this).find("a").attr("href");
   ...
}

これで、有効な HTML を持つという目標に到達しました。

偽のタグを使用すると、コードが簡素化されますが、無効な HTML が生成されます。

データを JavaScript に渡し、コードの単純さを維持する簡単な方法はありますか?

テンプレート エンジンから JavaScript に任意の文字列を渡すために使用する手法はどれですか?

このデータはユーザーにレンダリングされるべきではなく、データを非表示にするなどの CSS に基づくべきではないと想定しています。

<span id="real-points-count" style="display:none">${param}

更新します。このコードはどうですか:

<div class="clazz" min="MINDATA" max="MAXDATA">...<>

有効なHTML5を取得する方法で、 MINDATAMAXDATAを JavaScript に運ぶように変換できますか?

4

2 に答える 2

4

HTML5を使用できる場合は、属性を利用data-*して、HTML要素のデータを格納するためのカスタム属性を追加できます。

例えば

<li class="clazz" data-myattr="XXX">...</li>

そしてJSで

$(".clazz").click(function () {
   var v = $(this).data("myattr");
   ...
}

参照:HTML5カスタムデータ属性(data- jQueryHTML5data-属性

于 2012-10-18T12:26:28.967 に答える
1

このためにネイティブJavaScriptを試してみませんかonclick

これを見てください..

<li class="clazz" onclick="myFunction('my_url')">...</li>

次に、URLを入力として受け入れるこの関数を記述します。

<script type="text/javascript">
function myFunction(inUrl) {
    ....
};
</script>

このようにして、有効なHTMLを維持し、偽のタグを回避できます。

注:あなたはどんな番号でも渡すことができます。要素自体でさえ、関数へのパラメータの。

お役に立てれば。

于 2012-10-18T12:27:37.440 に答える