0

カスタム html タグの使用がさまざまな理由で不適切であることは理解していますが、カスタム html タグを使用することを保証する特定の状況を実行したいと考えており、別の方法で、または私の目標を達成するためのより良い方法が得られることを願っています。

私のコード全体を通して、テンプレートとそれに付随する非表示のクラスを含む div タグで構成されるテンプレートと呼ばれるものがあります。これは画面には表示されませんが、基本的にこれらの「テンプレート」タグには、さまざまなアイテムを作成するために Javascript で使用する html が含まれています。これは、HTML でテンプレートのスタイルを設定できるようにするためであり、JavaScript に CSS を混在させることを心配する必要はありません。

<!-- TEMPLATE -->
<div class="template hidden">
    <span>Random Container</span>
    <a href="#">Random Button</a>
</div>

JavaScriptでは、次のようなことをします

var template = document.getElementById("template");
var clone = template.cloneNode(true);
clone.removeClass("template hidden");

むしろこういうことができればいいのに

<template class="hidden">
   <span>Random Container</span>
   <a href="#">Random Button</a> 
</template>

そのため、単一の div に複数のテンプレートがある場合、一意のクラス名を付けるのではなく、それらすべてを取得できます。もちろん、実装が必要な理由はこれよりもはるかに深くなりますが、詳細に時間を無駄にする必要はありません。私のJavascript ALOTをクリーンアップするのに役立つとだけ言っておきましょう.

カスタム テンプレート タグは非表示であり、実際には、javascript 内で document.getElementsByTagName("template"); を使用して呼び出すのに便利なコンテナーに過ぎないためです。これは大丈夫ですか?テンプレートがhtmlに実装された場合に備えて、タグにカスタム名をプレフィックスとして付けます。

4

2 に答える 2

2

最近のブラウザーは一般に、カスタム タグを解析して DOM ノードを構築するという意味でカスタム タグを「サポート」しているため、要素をスクリプトでスタイル設定および処理できます。

主な問題は IE 9 より前の IE ですがdocument.createElement('...')、カスタム タグ名ごとに 1 回使用して処理できます。

もう 1 つの問題は、バリデーターがタグをエラーとして報告することです。そのようなエラーが大量にある場合、マークアップの実際のエラーに気付かない可能性があります。原則として、これに対処するために独自の DTD を作成できます (作成中の HTML DTD ジェネレーターがありますが、予想よりも複雑です...)。

これらの予約により、クラスを使用する場合と比較して本質的に仕事を簡素化する場合は、カスタム タグを使用します。

于 2012-02-29T21:32:09.830 に答える
1

HTML5のデータ属性の1つを使用してみませんか?個人データやカスタム情報を保存するためのものです。

あなたの場合、data-type="template"またはdata-name="template"を追加し、それに基づいて検索および削除することができます。タグを削除するために作成するのと同じように<template>、ルールを破ることなく1つの単純な関数。

だから、あなたの例を使って、<div data-type="template" class="hidden"></div>

于 2012-02-29T21:25:26.167 に答える