Javascript 查找最接近于';李';如果不在';分区';
我正在使用最接近的方法查找div中的属性:Javascript 查找最接近于';李';如果不在';分区';,javascript,jquery,Javascript,Jquery,我正在使用最接近的方法查找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($
.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]'));
}
可以在jQuery中用逗号分隔多个选择器
这将返回包含属性“my attribute”的最近的父元素,而不管该元素是div、li(或任何其他元素)
您可以使用
*
选择任何元素
$('*[my-attribute]')
演示:.closest('div[my attribute],li[my attribute])代码>应该可以工作
请注意,.closest
遍历dom树,因此它只检查基本选择器的祖先
例如:如果你有这样一个结构:div>ul>(li>a,li>a,li>a)
然后,$(“ul”)。最近的(“li”)
将什么也找不到 看一看,它会帮你做你想做的事情。不是吗?。最近('div[my attribute]')
(没有周围的$()
)?@sp00m两种方法都有效,即使我也会使用字符串搜索(),它不是三元运算符。哦,是的,我的坏哈哈。我最初编写了一个三元运算符,认为可以使用与php类似的语法,($something):$default
,但后来意识到这是不必要的,虽然这可能有效,但如果他只想要li
或div
元素,这将给他带来误报(如果其他元素可以具有该属性)
var closest = myDiv.closest('[my-attribute]');
$('*[my-attribute]')