,我是否可以仅使用jQuery的/sizzle的CSS选择器获得所选元素的父元素?
在使用jQuery时,我需要能够获得元素的父元素,但是我无法使用 use jQuery('#myelement').parent(),因为我将选择器作为字符串接收,而“用户”需要能够向上移动到树上。
我在文档中看不到任何东西,所以我想知道它是没有文件的,还是我可以使用的黑客?
发布于 2010-03-05 15:35:14
由于CSS不能像XPath那样遍历树,所以我正在对字符串中的字符<进行一些咀嚼和检查,然后对其进行拆分并手动调用.parent()。这不是最优的,但它是有效的。
发布于 2014-07-04 09:51:24
正确的解决办法实际上使用jQuery选择器而不是jQuery API的选择器是这样的:
$(':has(> #myElement)');这意味着您的“当前元素”实际上必须是' has‘参数,而不是基本表达式。它不应该改变任何东西,只是它比<少一点可读性。
作为参考,在一些情况下,jQuery API可能不是选择器的有效替代品,例如:
$(document).on('click', ':has(> .widget)', function () {
// ...
});在这种情况下,选择器允许过滤活动事件。
发布于 2010-03-05 13:20:12
jQuery(jQuery('#myelement').parent())是在没有附加函数的情况下获得对象。
好的,笑话结束;)
我猜您需要为活动函数选择父函数,这就是为什么不能这样获得它的原因。
jQuery('#'+jQuery('#myelement').parent().attr('id')).live(something);你这样做是为了让它发挥作用。如果父元素没有id,则可以使用更复杂的技巧。
//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选择器的设计是不可能的。
https://stackoverflow.com/questions/2385844
复制相似问题