js querySelector和getElementById通过id获取元素的区别

 更新时间:2012年04月20日 11:21:42   投稿:mdxy-dxy  
这是sina同事xiaoniu发现的,querySelector和getElementById通过id获取元素的区别

这是sina同事xiaoniu发现的,如下

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf-8"/> 
</head> 
<body> 
<div id="02E503E2A1C011CFC85B7B701A0677EC0900000000000001"></div> 
<script> 
var str = '02E503E2A1C011CFC85B7B701A0677EC0900000000000001'; 
function bySelector(id) { 
return document.querySelector('#'+id); 
} 
function byId(id) { 
return document.getElementById(id); 
} 

alert(bySelector(str)); 
alert(byId(str)); 
</script> 
</body> 
</html> 

两个函数bySelector,byId分别通过querySelector和getElementById获取元素.

页面上有id为“02E503E2A1C011CFC85B7B701A0677EC0900000000000001”的元素。

结果:所有支持querySelector的浏览器中通过bySelector均获取不到(报错),但通过getElementById却可以获取。

开始怀疑是id的字符串太长的原因导致querySelector获取不到。真正原因却是querySelector按css规范实现,即css标识符也不能以数字开头。

W3 写道
In CSS, identifiers (including element names, classes, and IDs in selectors) can contain only the characters [a-zA-Z0-9] and ISO 10646 characters U+00A0 and higher, plus the hyphen (-) and the underscore (_); they cannot start with a digit, two hyphens, or a hyphen followed by a digit. Identifiers can also contain escaped characters and any ISO 10646 character as a numeric code (see next item). For instance, the identifier "B&W?" may be written as "B\&W\?" or "B\26 W\3F".

相关文章

  • 小程序显示弹窗时禁止下层的内容滚动实现方法

    小程序显示弹窗时禁止下层的内容滚动实现方法

    这篇文章主要介绍了小程序显示弹窗时禁止下层的内容滚动实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • JavaScript 数组中插入元素的实例方法

    JavaScript 数组中插入元素的实例方法

    这篇文章主要介绍了如何在 JavaScript 数组中插入元素,在本文中,我们学习了使用 splice() 方法将元素添加到数组的开始、末尾或任何位置的各种方法,需要的朋友可以参考下
    2023-09-09
  • 巧用局部变量提升javascript性能

    巧用局部变量提升javascript性能

    巧用局部变量可以有效提升javascript性能,下面有个不错的示例,大家可以参考下
    2014-02-02
  • JS禁止查看网页源代码的实现方法

    JS禁止查看网页源代码的实现方法

    本文给大家介绍js如何禁止查看网页源代码,并给大家分享了三种查看路径的方法,本文给大家介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-10-10
  • 浅谈JavaScript 声明提升

    浅谈JavaScript 声明提升

    这篇文章主要介绍了JavaScript 声明提升的相关资料,帮助大家更好的理解和学习JavaScript,感兴趣的朋友可以了解下
    2020-09-09
  • 详解javascript高级定时器

    详解javascript高级定时器

    这篇文章主要介绍了javascript高级定时器,针对javascript的代码队列进行详细解析,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • javascript获取鼠标位置部分的实例代码(兼容IE,FF)

    javascript获取鼠标位置部分的实例代码(兼容IE,FF)

    这篇文章介绍了javascript获取鼠标位置部分的实例代码,有需要的朋友可以参考一下
    2013-08-08
  • js日期相关函数总结分享

    js日期相关函数总结分享

    最近写了一个倒计时程序,因为经常要在手机端访问,所以没有引用jquery,对于用习惯jquery的我还真不习惯。下面简单说明js日期相关函数,并说明实现倒计时的原理
    2013-10-10
  • JS 对象(Object)和字符串(String)互转方法

    JS 对象(Object)和字符串(String)互转方法

    下面小编就为大家带来一篇JS 对象(Object)和字符串(String)互转方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • JavaScript ES2019中的8个新特性详解

    JavaScript ES2019中的8个新特性详解

    这篇文章主要介绍了JavaScript ES2019中的8个新特性详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02

最新评论