首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery在W3C DOM4规范5.2.2节中的注记

jQuery在W3C DOM4规范5.2.2节中的注记
EN

Stack Overflow用户
提问于 2015-07-20 20:41:01
回答 2查看 54关注 0票数 3

有没有人能在W3C DOM4规范第5.2.2节上解释这张便条

相关引文:

注意: getElementById()方法并不是为了与旧版本的jQuery兼容而使用的元素。如果某个时候那个版本的jQuery消失了,我们可能会支持它。

我很好奇这个接口如何显式地导致jQuery的问题,以及什么版本,有人有例子吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-20 23:27:14

要扩展到@Nan答案,可能需要使用jQuery使用getElementById来验证迭代中的一个步骤。将此方法添加到HTMLElement将使某些条件在部分jQuery代码依赖于它而不是验证时进行验证。

很难说究竟是哪个版本造成了问题,在哪些情况下,但是快速查看一下旧的jQuery版本,您可以发现,旧版本中的find()与具有getElementById方法的元素不兼容。

回到版本1.3,您可以尝试将该方法添加到HTMLElement中,您将看到它会破坏结果。最近的版本正确地处理了这个问题。见片段:

代码语言:javascript
复制
alert('Without getElementById method on HTMLElement, length of $("div").find("#test") is ' + $('div').find('#test').length);
window.HTMLElement.prototype.getElementById = function(str){
    console.log(str);
    return str;
}

alert('With getElementById method on HTMLElement, length of $("div").find("#test") is ' + $('div').find('#test').length);
代码语言:javascript
复制
<script src="https://code.jquery.com/jquery-1.3.js"></script>
<div id="container"><div id="test"></div></div>

票数 2
EN

Stack Overflow用户

发布于 2015-07-20 23:03:47

看起来,getElementById方法只存在于document全局对象上,而且它还不是DOM4 Element对象的一部分。

这是由于与较早版本的jQuery的兼容性问题,因为您可以在DOM4规范上阅读。

但是,这一切意味着什么呢?这意味着W3C试图将此方法添加到Element对象中,还意味着一旦这个“jQuery版本”拒绝,我们“可能”就能够像这样链接getElementById()调用:

代码语言:javascript
复制
var myElement = document.getElementById("header").getElementById("slogan");

没有什么特别的,他们不希望最流行的DOM操作包装器崩溃或jQuery,因为W3C成员对这个决定有一定的影响。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31525935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档