3

data-type純粋な JavaScript を使用して、新しい HTML5 タグ名 (またはそのための任意のカスタム タグ名) を取得できるようにしたいと考えています。このデータにアクセスする必要があるコンテキストは、要素 childNodes のループ内にあります。

var children = document.getElementById('foo').childNodes;
for(var i=0; i<children.length; i++) {
    var dataType = children[i].dataType //This does not work.
}

上記のコードが実際に機能するようにchildNodes、そのタグで取得された要素に関数が関連付けられるようにプロトタイプを作成する方法はありますか?dataType

children[i].outerHTML要素の生の HTML を取得するために使用し、次に正規表現を使用して実際に要素から値を設定する必要があると思います。

4

2 に答える 2

8

data-*属性からデータを取得する場合

var children = document.getElementById('foo').childNodes;
var childrenLength = children.length;

for(var i=0; i<childrenLength; i++) {
    var dataType = children[i].getAttribute('data-type');
}
于 2012-04-04T06:13:07.810 に答える
1

この件に関するMozilla のドキュメントを調べると、標準では、データセット プロパティを使用して読み取ることができる.getAttributeDOMStringMapよりも簡単な方法が定義されていることがわかります。

要するに、それはあなたがこれを行うことができることを意味します

var dataType = children[i].dataset.dataType;

またはdataset、要素から複数のデータ属性を取得する場合に便利な、次のような変数に を設定できます。

var dataSet = children[i].dataset,
    dataType = dataSet.dataType;
于 2014-07-05T18:19:45.907 に答える