自从将jQuery更新为1.9.1以来,Opera开始抛出与nodeType相关的错误。
我有以下代码:
$("p, td, div, span").children().andSelf().contents().each(function(){
if (this.nodeType == 3)
{
...
}
});
Opera抛出
未处理错误:安全错误:尝试读取受保护变量
即使我删除了那个代码块,Opera也会抛出相同的错误,这次是jquery-1.9.1.min.js
本身的一行:
return e.nodeType ? (this.context = this[0] = e, this.length = 1, this) : b.isFunction(e) ? r.ready(e) : (e.selector !== t && (this.selector = e.selector, this.context = e.context), b.makeArray(e, this))
如果这改变了什么,我正在从http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.9.1.min.js
加载jQuery更新:
相同的代码在Firefox中导致类似的错误:
Permission denied to access property 'nodeType'
Chrome中的一切都按预期工作。
答案 0 :(得分:1)
使用$("p, td, div, span").children().addBack().not("iframe").contents()
在iframe上不应用.contents()
。
顺便说一下,如果你只想获得nodeType == 3
的内容节点,你可能只想使用.children()
。