1

属性配列にどの要素が格納されているか、ブラウザーの一貫性があるかどうか疑問に思っていました。

「$('#elm')[0].attributes」ですべての「data-xxx」属性が見つかりましたか?

たとえば、attributes-collection には以下のすべての data-attributes が含まれていますか?

 <input type="submit" value="Go" data-validation="foo" data-widgetId="bar">

私が必要としているのは、関連するすべての属性を input[type=submit] から jQuery を使用してボタン要素に移動する方法です。

4

3 に答える 3

1

HTML 5 以外のブラウザーの場合は無視されても、データ属性はすべてのブラウザーに存在すると思います。

HTML5 カスタム データ属性は IE 6 で「機能」しますか?

@編集された回答

jquery data() が html5 ブラウザと非 html5 ブラウザの両方で動作することがわかりました。

http://www.sluniverse.com/ffn/index.php/2011/02/using-html5s-data-attributes-with-jquery/

example of looping through all data attributes;

<input type="text" id="x" data-a="valuea", data-b="valueb" />
$.each($('#x').data(), function(key, value) { 
  console.log('key is', key);
  console.log('value is', value);
});            

prints         

key is a
value is valuea
key is b
value is valueb
于 2011-04-19T11:27:54.093 に答える
0

dataset現在、属性にアクセスする公式の標準的な方法であるプロパティをネイティブでサポートしているブラウザーは多くありませんdata-*。これは時間の経過とともに改善されますが、現時点では十分にサポートされていません (詳細については、 http://caniuse.com/#search=datasetを参照してください)。

ただし、ご存知のように、すべてのブラウザはdata-*通常の属性としてサポートできます。しかし、プロパティがないと、すべての属性datasetを取得する簡単な方法はありません。data-*

幸いなことに、この機能を提供する JQuery プラグインがあります。詳細については、こちらをご覧ください: http://www.orangesoda.net/jquery.dataset.html

于 2011-04-19T11:17:31.047 に答える
0

.attributes に関するブラウザ サポート情報はこちら

    var attrs = $("input[type=submit]")[0].attributes;
    for(var i=0;i<attrs.length;i++) {
        alert(attrs[i].nodeName + " = " + attrs[i].nodeValue);
    }
于 2011-04-13T19:10:19.783 に答える