2012-04-04 12 views
3

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

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

上記のコードは、実際に動作しますように、そのタグで取得任意の要素は、それに接続されているdataType機能を有するようにchildNodesのプロトタイプを作成するためにいくつかの方法はありますか?

私は、要素の生のHTMLを取得するためにchildren[i].outerHTMLを使用し、実際に要素から値を入れる正規表現を取得する必要があります。

答えて

6

あなたは、件名にMozilla's docsをチェックアウトする場合は、標準が.getAttributeより簡単な方法を定義することがわかります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'); 
} 
+0

またはそれ。私のアプローチよりもはるかに容易に見える。 – ryandlf

1

からデータを取得する意味場合:使用して読み取ることができDOMStringMapdataset property。あなたはこの

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

それとも、あなたが要素

からいくつかのデータ属性を取得しているときに便利である、次のような変数に datasetを設定することができますを行うことができることを意味し要するに

var dataSet = children[i].dataset, 
    dataType = dataSet.dataType; 
関連する問題