4

data-roleというカスタム属性があり、jQueryでdata-role="content"であるすべての要素を検索したいと考えています。

ここに画像の説明を入力

私は現在、いくつかの古い JavaScript コードでこれを行っています。

var elements = element.getElementsByTagName(tagName);
for(var i=0; i<elements.length; i++) {
  if(elements[i].getAttribute("data-role") == "content") {
    // does something evil
  }
}

免責事項:コードはチェックされていません。すぐに書き留めただけです。

jQuery にはエレガントな 1 行のソリューションがあるような気がしますが、初心者です。そして、私は知らないうちに眠ることができないので、おそらくあなたのstackoverflowersが仲間を助けることができます. ;-)

4

4 に答える 4

6
$("tagName[attribute='value']")

または、あなたの場合:

$("div[data-role='content']")

正しい要素を返します。

そこから、このセレクターとdo something evilに一致する一連の要素を繰り返し処理したい場合は、次のことができます。

$("[data-role='content']").each(function(index){

     Do something evil
     $(this) is the current element in the iteration
});

tagName はオプションであることに注意してください。JQueryセレクターは自由に連結できるため、タグ名(単純な文字列)、id( で始まる#)、クラス( で始まる.)、または属性(上記のように角括弧で囲まれている)、またはそれらの限られた組み合わせについて同時にクエリを実行できます。

 $("tagName#someId.someClass.someOtherClass[attribute='value']")
 $("[attribute='value']")
 $('tagName')
 $('#someId')

すべて有効なクエリですが、jquery はクエリのすべての条件に一致する要素のみを返すことに注意してください。

于 2013-08-06T06:32:53.957 に答える
2

jQuery の属性セレクターのリストを確認してください。あなたは次のようなものを探しています

$('div[data-role="content"]')
于 2013-08-06T06:32:32.683 に答える
1

使用するattribute equals selector

$("div[data-role='content']")

詳細はこちら

于 2013-08-06T06:35:37.460 に答える
1

属性セレクターによる jQuery 選択:

$('[data-role="content"]')

.each();そして、代わりに配列を使用する場合for

$('[data-role="content"]').each(function(){
  alert($(this).html());
});
于 2013-08-06T06:35:46.167 に答える