【问题标题】:Function doesn't work in safari on windows功能在 Windows 上的 safari 中不起作用
【发布时间】:2015-08-29 02:22:31
【问题描述】:

虽然此语法适用于所有其他浏览器,但 Windows 上的 safari 会引发错误

$("#kibana").contents().find('.navbar-nav')[0].remove();

错误是

TypeError: 'undefined' is not a function 

元素确实存在。我使用调试器进行了检查。

为什么会这样?

【问题讨论】:

  • "kibana" 是我在其中下载第三方内容的 iframe 的 ID。在我签入调试器时执行此 $("#kibana").contents().find('.navbar-nav')[0].remove() 之前, $("#kibana").contents() .find('.navbar-nav') 显示带有 2
      的数组。所以我试图通过这段代码删除第一个。
  • 看起来有人在 Safari 上也遇到了iframe 的问题,但不是直接相关的。 stackoverflow.com/questions/14105611/…

标签: javascript jquery html safari


【解决方案1】:

当您在 jQuery 对象上使用 [] 时,您正在检索底层 DOM 节点。 .remove 在原生 DOM 元素上不完全跨浏览器兼容。

相反,您可以使用.eq 检索元素,同时仍将其包裹在 jQuery 中。这样你就可以使用跨浏览器兼容的.remove 方法:

$("#kibana").contents().find('.navbar-nav').eq(0).remove();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-27
    相关资源
    最近更新 更多