私は使用しました
var activeFilter = $('<li></li>').data('input-id', 'mycustomId');
$('#container').append(activeFilter);
ここで、既知の < ul > 内の複数の < li > 要素から特定の < li > 要素を取得する必要があります。
ただし、明らかなセレクターは機能しません。
var existing = $('li[data-input-id=mycustomId]');
alert(existing.length);
便利なリンク: .prop() と .attr() データ属性を持つ要素を取得、設定、選択する方法は?
概要:
.prop()
DOM プロパティを設定/取得します。例: className
.attr()
TAG ATTRIBUTES.. などのクラスを設定/取得し、セレクターを$('obj[class=xxx]')
可能にします。
.data()
jQuery の内部キャッシュ属性を設定/取得し、属性またはプロパティにマップしません。
ただし、html5 ATTRIBUTES では、.attr()
接頭辞を含む設定で"data-"
正しくアクセスできますが、その逆で.data()
はありません!!
デバッガーにはプロパティ data-input-id がリストされていませんが、次の方法でアクセスできます
$('#container li:firstchild').data('input-id');
obj.getChildWithData('data-id', 'mycustomId');
問題は、各 li のデータセットをチェックするループ内の OTHER THAN のように、与えられたデータセットの値を持つ li (オブジェクト ie) をどのように取得するか (どのセレクターを使用する必要があるか)です。または、ばかげた document.querySelectorAll を使用します。これは、必要なことを実行しないためです。
そのように動作するはずの場合、該当する場合は説明してください。属性として設定された data-* 属性を取得しても、html5 で推奨されている .data() を使用できません。だから私はそれを正しくしたい。