2013-05-15 7 views

答えて

55

data-*属性を取得する最も簡単な方法は、element.getAttribute()である:

onclick="fun(this.getAttribute('data-uid'), this.getAttribute('data-name'), this.getAttribute('data-value'));" 

はDEMO:http://jsfiddle.net/pm6cH/


私はちょうどfun()thisを渡し、そして3つの属性を取得することをお勧めしますが内部fun機能:

onclick="fun(this);" 

そして:

function fun(obj) { 
    var one = obj.getAttribute('data-uid'), 
     two = obj.getAttribute('data-name'), 
     three = obj.getAttribute('data-value'); 
} 

DEMO:http://jsfiddle.net/pm6cH/1/


プロパティでそれらにアクセスするための新しい方法がdatasetであるが、それはすべてのブラウザでサポートされていません。 。

this.dataset.uid 
// and 
this.dataset.name 
// and 
this.dataset.value 

DEMO:

data-name="bbb", 
http://jsfiddle.net/pm6cH/2/


また、あなたのHTMLに、ここにカンマがあってはならないことに注意して、次のようにあなたはそれらを取得したいです


参考文献:

+1

@lan "this"を渡す方が良い方法です。ありがとうございました。 – Werner

+0

@ user2206656合意:)それぞれのシナリオに(非常にシンプルな)デモを追加しました。うまくいけばそれも役立ちます! – Ian

+0

ちょっと遅いかもしれませんが、 'onclick'がなくても関数をトリガーする方法はありますが、 'onload'のようなものですか? –

1

HTML:

<div data-uid="aaa" data-name="bbb", data-value="ccc" onclick="fun(this)"> 

はJavaScript:

function fun(obj) { 
    var uid= $(obj).attr('data-uid'); 
    var name= $(obj).attr('data-name'); 
    var value= $(obj).attr('data-value'); 
} 

が、私はjQueryのを使用しています。

+7

記載されているカテゴリは明らかにJavascriptです。 – harishannam

+1

+ jqueryに '.data()'メソッドがあります。 –

関連する問題