简化jQuery选择器?

时间:2014-09-18 12:24:22

标签: jquery jquery-selectors

我需要检查点击的元素或其中一个父元素是否为svg标记。我不能使用closest()选择器,因为它太宽松了。

我现在拥有的:

if (jClicked.is('svg') || jClicked.parent('svg').length > 0) {

有没有办法只使用选择器从表达式中删除OR运算符?

2 个答案:

答案 0 :(得分:3)

您可以创建一个包含jClicked及其父级的jQuery对象,然后我们可以使用.is()

if(jClicked.parent().addBack().is('svg'))

答案 1 :(得分:3)

尝试使用.add(),因为.is()会对元素集合执行OR操作,

if(jClicked.add(jClicked.parent()).is('svg'))

我想知道为什么你拒绝在这种情况下使用.closest(),这种情况会非常有效。

if(jClicked.closest('svg').length)