Javascript jQuery上下文选择器不一致

Javascript jQuery上下文选择器不一致,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,挑战在于向jQueryUI对话框中的特定按钮添加特定类 我已经测试了这两个,这将起作用: $('button:contains("Add New")', $('#selectDialog').parent()).addClass('alternateButtonStyle'); 这,;但是,以下情况将不起作用: $('button:contains("Add New")', '#selectDialog:parent').addClass('alternateButtonStyle'); 为

挑战在于向jQueryUI对话框中的特定按钮添加特定类

我已经测试了这两个,这将起作用:

$('button:contains("Add New")', $('#selectDialog').parent()).addClass('alternateButtonStyle');
这,;但是,以下情况将不起作用:

$('button:contains("Add New")', '#selectDialog:parent').addClass('alternateButtonStyle');
为什么第二个代码示例不起作用?

父选择器不选择父元素,它只是过滤到作为父元素的元素。它是:空的相反

它不会起作用,因为它不会做你认为它会做的事

该用例也没有文档记录,您的上下文选择器实际上应该是一个jquery对象,只需将其包装在$

未记录的功能可能会在没有警告的情况下被破坏。

父选择器不选择父元素,它只是过滤到父元素。它是:空的相反

它不会起作用,因为它不会做你认为它会做的事

该用例也没有文档记录,您的上下文选择器实际上应该是一个jquery对象,只需将其包装在$


未记录的功能可能会在没有警告的情况下被破坏。

我明白了;说得好。有没有一种方法可以使用选择器而不是像我那样调用jQuery$方法?@user1477388没有。为什么要使用选择器?我觉得它应该更快,因为它的文本更少。它在2.0.0b3之前的所有jQuery版本中都有效,在2.0 edge中也有效。在这两种情况下,它都没有文档记录,应该包装在$@user1477388中。为什么:parent应该重命名为:isParent?所有伪:foo选择器的语义均为:isFoo。这就是他们的目的选中表示选中:text表示我看到的是一个textbox;说得好。有没有一种方法可以使用选择器而不是像我那样调用jQuery$方法?@user1477388没有。为什么要使用选择器?我觉得它应该更快,因为它的文本更少。它在2.0.0b3之前的所有jQuery版本中都有效,在2.0 edge中也有效。在这两种情况下,它都没有文档记录,应该包装在$@user1477388中。为什么:parent应该重命名为:isParent?所有伪:foo选择器的语义均为:isFoo。这就是他们的目的选中表示选中,:文本表示一个文本框