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

这将返回包含属性“my-attribute”的最接近的父母,无论天气如何,元素是 div、li(或其他任何东西)。

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

.closest('div[my-attribute], li[my-attribute]');应该管用。

请注意,.closest它会向上遍历 dom 树,因此它只会检查基本选择器的祖先。

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

您可以只使用*来选择任何元素。

$('*[my-attribute]')

演示:http: //jsfiddle.net/eZbN7/

于 2012-09-12T13:41:33.840 回答
0

您可以在 jQuery 中用逗号分隔多个选择器。

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

于 2012-09-12T13:38:18.230 回答