我在一些代码中遇到过这种语法,它在IE8中突破但在其他代码中运行,任何线索它正在做什么。
$(this.handle()).find("[id]:visible:enabled");
我认为它可能正在寻找当前页面中所有元素搜索ids,然后在结果元素中搜索“可见”和“已启用”属性,但我现在不这么认为。 当我搜索“可见”或“已启用”时,IE8中的开发人员工具不会显示任何结果!
在IE8中返回失败。
答案 0 :(得分:2)
此选择器应查找具有id
和visible
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-selector和api.jquery.com/visible-selector,这真的回答了我的问题。看起来JQuery find方法在浏览器上的工作方式不同。这个问题应该可以参考jquery本身。