0

有时我需要得到这样的元素:

var object = document.getElementById('ObjectName');

有时像这样:

var object = document.getElementById('#ObjectName');

他们之间有什么区别?

4

4 回答 4

8

不,你看不到

var object = document.getElementById('#ObjectName');

你看不到,因为这意味着元素的 id 以开头,#而 HTML4 id 只能以 "with a letter ([A-Za-z])" 开头

你看到的是有时人们使用jQuery库,其中查询语言允许你使用

var elem = $('#objectId');

将来你会看到越来越多的人使用类似的查询语言和querySelectorquerySelectorAll

于 2013-03-18T20:22:42.253 回答
7

#CSS 中 ID 选择器的一部分。有一些库和方法支持 CSS 选择器来选择元素,例如 jQuery 和原生 DOM 方法querySelectorquerySelectorAll.

但在“传统”的 DOM 方法中,#没有特殊含义。将选择一个字面上具有 IDgetElementById('#ObjectName')的元素,即.#ObjectName<div id="#ObjectName">

于 2013-03-18T20:22:48.500 回答
6

前者得到一个带有 的元素id="ObjectName"。后者获得一个带有 的元素id="#ObjectName"

Selector的上下文中(例如,由 CSS 使用,document.querySelector但不与 一起使用getElementById),该#字符表示它后面的文本是一个 id。

document.querySelector('ObjectName')(使用类型选择器)会得到<ObjectName />(无效的 HTML),而document.querySelector('#ObjectName')会得到一个带有id="ObjectName".

于 2013-03-18T20:22:51.323 回答
-1
'#ObjectName'

JQuery(编辑:或其他 JavaScript 库)

'ObjectName'

DOM (getElementById)

于 2013-03-18T20:24:19.847 回答