プロジェクトでは一連のカスタム タグを設計する必要があるため、タグ属性にアクセスする方法が含まれます。 HTML5 の data-* 属性を使用する場合、要素を取得した後、dataset.attribute 名に直接アクセスできます。データセットのタイプは DOMStringMap {} であり、これは依然としてキー/値オブジェクトです。使いやすい。ただし、互換性の問題が発生し、Android 2.3 などの一部の古いブラウザではサポートされていません。
これに対する互換性パッチを作成できます。主な原則は、document.querySelector/querySelectorAll などのメソッドを「ハイジャック」して要素を取得し、カスタム フィールド dataset = {....} を提供して同様の標準的な記述を実現することです。もちろん、単に getDataAttrib() のような API メソッドを提供して属性を取得することもでき、効果は同じです。この方法ではなく別の方法を採用する理由は、より標準に近づき、全員に一貫したアクセス方法を使用するためです。
私の実装は次のとおりです:
// 如浏览器不支持 HTML5 data-* 属性,设置一个。 ;(function(){ // 测试元素 var el; el = document.createElement('p'); el.setAttribute('data-id', '111'); if(!el.dataset){ Element.prototype.dataset = {}; var querySelectorAll = document.querySelectorAll; // 保存一个 document.querySelectorAll = function(){ var resultEls = querySelectorAll.apply(this, arguments); for(var resultEl, i = 0, j = resultEls.length; i < j; i++){ resultEl = resultEls[i]; resultEl.dataset = getAttrib(resultEl.attributes) } return resultEls; } // 也就是单个的 document.querySelectorAll()。不保存,直接覆盖 document.querySelector = function(){ var resultEls = document.querySelectorAll.apply(this, arguments); return resultEls ? resultEls[0] : null; }; } el = null; // 要完全移除 dummy 元素,是否这样就 ok? /** * 把元素保存为 JSON 对象 * @param {Element.attributes} 元素属性集合 * @return {Object} */ function getAttrib(attributes) { if (!attributes) return; var hash = {}; for (var attribute, i = 0, j = attributes.length; i < j; i++) { attribute = attributes[i]; if(attribute.nodeName.indexOf('data-') != -1){ hash[attribute.nodeName.slice(5)] = attribute.nodeValue; } } return hash; } })();
要素を取得するには querySelector メソッドで十分であることを考慮すると、現時点では documenty.getElementByID("#id") メソッドは提供されていません。
注意: ドキュメント以外のオブジェクトに対して実行される querySelector /querySelectorAll はサポートされず、データセットは返されません。 この問題は2013.1.16にElement.prototypeメソッドを書き換えることで解決されました。詳細なプロセスは次のとおりです。
if(!canSupportDataSet()){ Element.prototype.dataset = {}; modifyQuerySelectorAll_By(document); // document 的好像不一样…… modifyQuerySelectorAll_By(Element.prototype); } /** * 覆盖系统的 querySelector/querySelectorAll 方法。 * @param host {Element.prototype/Document} */ function modifyQuerySelectorAll_By(host){ var querySelectorAll = host.querySelectorAll; // 保存一个 host.querySelectorAll = function(){ var resultEls = querySelectorAll.apply(this, arguments); for(var resultEl, i = 0, j = resultEls.length; i < j; i++){ resultEl = resultEls[i]; resultEl.dataset = getAttrib(resultEl.attributes) } return resultEls; } // 也就是单个的 document.querySelectorAll()。不保存,直接覆盖 host.querySelector = function(){ var resultEls = host.querySelectorAll.apply(this, arguments); return resultEls ? resultEls[0] : null; }; }
テスト例:
<listview id="foo" data-id="1"> Hello World <p data-id="2"></p> </listview> <script> var el = document.querySelector('#foo'); alert(el.querySelector('p').dataset.id); </script>
問題の概要:
ブラウザは querySelector/querySelectorAll メソッドをサポートできる必要があります。それ以外の場合、このメソッドは無意味です。要素データセットを取得するメソッドから提供されます。たとえば、イベント ハンドラーのパラメーター e の e.tartget.dataset は空のオブジェクトです。
上記のコードに示されているように、単一の querySelector() が querySelectorAll() を介して渡されます。これには、配列を走査する操作が含まれています。これを適切に最適化し、ネイティブのものを使用できますか?
CSS セレクター エンジンの速度に敏感な学生には、この方法は適用できません。システムのメソッドが変更されるため、必然的にパフォーマンスが低下することがわかります。ただし、この減少は小さいことは保証できます。
はまだ documeny.getElementByID をサポートしていないため、追加される予定です。
以上がHTML5サンプルコードのdata-*属性を自動取得する方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

HTML5は、最新のWebページを構築するための重要なテクノロジーであり、多くの新しい要素と機能を提供します。 1。HTML5は、Webページの構造とSEOを強化するなどのセマンティック要素を導入します。 2。プラグインなしのマルチメディア要素と埋め込みメディアをサポートします。 3.フォームは、新しい入力タイプと検証プロパティを強化し、検証プロセスを簡素化します。 4.オフラインおよびローカルストレージ機能を提供して、Webページのパフォーマンスとユーザーエクスペリエンスを向上させます。

H5コードのベストプラクティスには以下が含まれます。1。正しいDoctype宣言と文字エンコーディングを使用します。 2。セマンティックタグを使用します。 3。HTTPリクエストを削減します。 4.非同期負荷を使用します。 5。画像を最適化します。これらのプラクティスは、Webページの効率、保守性、ユーザーエクスペリエンスを向上させることができます。

Web標準とテクノロジーは、これまでにHTML4、CSS2、および単純なJavaScriptから進化し、重要な開発を受けてきました。 1)HTML5は、CanvasやWebstorageなどのAPIを導入し、Webアプリケーションの複雑さと互換性を高めます。 2)CSS3はアニメーション関数とトランジション関数を追加して、ページをより効果的にします。 3)JavaScriptは、矢印関数やクラスなど、node.jsおよびES6の最新の構文を通じて開発効率とコードの読みやすさを向上させます。これらの変更により、パフォーマンスの最適化とWebアプリケーションのベストプラクティスの開発が促進されました。

H5はHTML5の略語だけでなく、より広い最新のWeb開発テクノロジーエコシステムを表しています。1。H5にはHTML5、CSS3、JavaScript、および関連するAPIおよびテクノロジーが含まれます。 2.より豊かでインタラクティブでスムーズなユーザーエクスペリエンスを提供し、複数のデバイスでシームレスに実行できます。 3. H5テクノロジースタックを使用して、レスポンシブWebページと複雑なインタラクティブ機能を作成できます。

H5とHTML5は、同じこと、つまりHTML5を参照します。 HTML5はHTMLの5番目のバージョンであり、セマンティックタグ、マルチメディアサポート、キャンバスとグラフィックス、オフラインストレージ、ローカルストレージなどの新しい機能をもたらし、Webページの表現力と互換性を向上させます。

H5ReferStoHtml5、apivotaltechnologyinwebdevelopment.1)html5introduceSnewelementsandapisforrich、dynamicwebapplications.2)Itupp ortsmultimediawithoutplugins、endancingurexperiencecrossdevices.3)semanticelementsimprovecontentstructurendseo.4)H5'srespo

H5開発で習得する必要があるツールとフレームワークには、Vue.JS、React、Webpackが含まれます。 1.Vue.jsは、ユーザーインターフェイスの構築に適しており、コンポーネント開発をサポートします。 2.複雑なアプリケーションに適した仮想DOMを介したページレンダリングを最適化します。 3.Webpackは、モジュールのパッケージングに使用され、リソースの読み込みを最適化します。

html5hassificlytransformdedwebdeveverment byintroducingsingingelements、endincemultimediasupport、およびrequrovingperformance.1)itmadewebsitesmoreaccessibleandseo-frendlywithsemantelementslike、and.2)


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

WebStorm Mac版
便利なJavaScript開発ツール
