0

div内の属性を見つけるために最も近い方法を使用しています:

 .closest($('div[my-attribute]'));

この属性は、li要素内にも存在する可能性があります。

 .closest($('li[my-attribute]'));

divに属性が見つからない場合、「li」内の属性を見つけるためのエレガントな方法は何ですか?

何かのようなもの:

var closest = myDiv.closest($('div[my-attribute]'));
if(closest == null){
    closest = myDiv.closest($('li[my-attribute]'));
}
4

5 に答える 5

1

これにより、要素がdiv、li(またはその他)である天候に関係なく、属性「my-attribute」を含む最も近い親が返されます。

var closest = myDiv.closest('[my-attribute]');
于 2012-09-12T13:39:34.413 に答える
1

.closest('div[my-attribute], li[my-attribute]');動作するはずです。

domツリーをトラバースすることに注意してください.closest。これにより、ベースセレクターの祖先のみがチェックされます。

IE:このような構造の場合:div > ul > (li > a, li > a, li > a)

その後$("ul").closest("li")、何も見つかりません。

于 2012-09-12T14:26:51.500 に答える
0
var closest = myDiv.closest($('div[my-attribute]')) || myDiv.closest($('li[my-attribute]'));
于 2012-09-12T13:37:15.880 に答える
0

jQueryでは複数のセレクターをコンマで区切ることができます。

http://api.jquery.com/multiple-selector/

于 2012-09-12T13:38:18.230 に答える
0

*任意の要素を選択するために使用できます。

$('*[my-attribute]')

デモ: http: //jsfiddle.net/eZbN7/

于 2012-09-12T13:41:33.840 に答える