何时使用#符号在JavaScript中获取对象

Moo*_*stt 0 html javascript asp.net

有时我需要得到这样的对象:

 var object = document.getElementById('ObjectName');
Run Code Online (Sandbox Code Playgroud)

有时像这样:

 var object = document.getElementById('#ObjectName');
Run Code Online (Sandbox Code Playgroud)

他们之间有什么区别?

Den*_*ret 8

不,你没看到

var object = document.getElementById('#ObjectName');
Run Code Online (Sandbox Code Playgroud)

你没有看到,因为这意味着元素的id开头,#而HTML4 id只能以字母([A-Za-z]"开头).

你看到的有时是人们使用jQuery库,查询语言允许你使用它来查找对象

var elem = $('#objectId');
Run Code Online (Sandbox Code Playgroud)

在未来,您会看到越来越多的人使用querySelectorquerySelectorAll使用类似的查询语言.

  • 但是以 `#` 开头的 `id` 属性在 HTML5 中是公平的游戏,所以从技术上讲,提问者*可能*已经看到了该代码。 (2认同)

Fel*_*ing 6

#CSS中ID选择器的一部分.有支持CSS选择用于选择的元素,如jQuery和天然DOM方法库和方法querySelectorquerySelectorAll.

但在"传统"DOM方法中,#没有特殊意义.getElementById('#ObjectName')会选择一个字面上具有ID 的元素#ObjectName,即<div id="#ObjectName">.


Que*_*tin 5

前者得到一个元素id="ObjectName".后者得到一个元素id="#ObjectName".

选择器的上下文中(例如,通过CSS使用document.querySelector但不使用getElementById),该#字符表示其后面的文本是id.

document.querySelector('ObjectName')(使用类型选择器)将得到<ObjectName />(不是有效的HTML),而document.querySelector('#ObjectName')获得一个元素id="ObjectName".