首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找当前元素的父元素的jQuery/Sizzle选择器?

问查找当前元素的父元素的jQuery/Sizzle选择器?
EN

Stack Overflow用户
提问于 2010-03-05 10:01:42
回答 4查看 3.5K关注 0票数 3

,我是否可以仅使用jQuery的/sizzle的CSS选择器获得所选元素的父元素?

在使用jQuery时,我需要能够获得元素的父元素,但是我无法使用 use jQuery('#myelement').parent(),因为我将选择器作为字符串接收,而“用户”需要能够向上移动到树上。

我在文档中看不到任何东西,所以我想知道它是没有文件的,还是我可以使用的黑客?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-03-05 15:35:14

由于CSS不能像XPath那样遍历树,所以我正在对字符串中的字符<进行一些咀嚼和检查,然后对其进行拆分并手动调用.parent()。这不是最优的,但它是有效的。

票数 0
EN

Stack Overflow用户

发布于 2014-07-04 09:51:24

正确的解决办法实际上使用jQuery选择器而不是jQuery API的选择器是这样的:

代码语言:javascript
复制
$(':has(> #myElement)');

这意味着您的“当前元素”实际上必须是' has‘参数,而不是基本表达式。它不应该改变任何东西,只是它比<少一点可读性。

作为参考,在一些情况下,jQuery API可能不是选择器的有效替代品,例如:

代码语言:javascript
复制
$(document).on('click', ':has(> .widget)', function () {
    // ...
});

在这种情况下,选择器允许过滤活动事件。

票数 3
EN

Stack Overflow用户

发布于 2010-03-05 13:20:12

jQuery(jQuery('#myelement').parent())是在没有附加函数的情况下获得对象。

好的,笑话结束;)

我猜您需要为活动函数选择父函数,这就是为什么不能这样获得它的原因。

代码语言:javascript
复制
jQuery('#'+jQuery('#myelement').parent().attr('id')).live(something);

你这样做是为了让它发挥作用。如果父元素没有id,则可以使用更复杂的技巧。

代码语言:javascript
复制
    //newline for reading comfort. skip it. --v
jQuery('[title='+jQuery('#myelement').parent() 
.attr('title',Math.round(Math.random()*100000)+']').attr('title')).live(something);

您可以使用id、标题或类,这取决于页面上已经有哪些内容。

如果您真的需要css选择器(),那么只需要css选择器--据我所知,用css选择器的设计是不可能的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2385844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档