Jquery选择器语法

时间:2011-01-12 15:30:13

标签: javascript jquery jquery-selectors

我在一些代码中遇到过这种语法,它在IE8中突破但在其他代码中运行,任何线索它正在做什么。

$(this.handle()).find("[id]:visible:enabled");

我认为它可能正在寻找当前页面中所有元素搜索ids,然后在结果元素中搜索“可见”和“已启用”属性,但我现在不这么认为。 当我搜索“可见”或“已启用”时,IE8中的开发人员工具不会显示任何结果!

在IE8中返回失败。

4 个答案:

答案 0 :(得分:2)

此选择器应查找具有idvisible enabled属性的所有子元素。 From this test它似乎正在发挥作用。在IE8和Chrome中测试过。

答案 1 :(得分:1)

这取决于它运行的上下文。什么是“这个”,它有一个叫做“句柄”的功能吗?如果没有,那就是它失败的原因。

为了使这个工作,this.handle()必须返回一些东西供jQuery遍历,在这种情况下它返回Josiah Rudell已经指出的所有元素

答案 2 :(得分:0)

http://api.jquery.com/visible-selector/ http://api.jquery.com/enabled-selector/

答案 3 :(得分:0)

this.handle()确实返回一些有效的东西,$(this.handle())是一个jquery对象。查找可用。该查询在Chrome上正常运行,但在IE8上无效。我现在看到这些选择器上的文档api.jquery.com/enabled-selectorapi.jquery.com/visible-selector,这真的回答了我的问题。看起来JQuery find方法在浏览器上的工作方式不同。这个问题应该可以参考jquery本身。