有时我需要得到这样的元素:
var object = document.getElementById('ObjectName');
有时像这样:
var object = document.getElementById('#ObjectName');
他们之间有什么区别?
有时我需要得到这样的元素:
var object = document.getElementById('ObjectName');
有时像这样:
var object = document.getElementById('#ObjectName');
他们之间有什么区别?
不,你看不到
var object = document.getElementById('#ObjectName');
你看不到,因为这意味着元素的 id 以开头,#
而 HTML4 id 只能以 "with a letter ([A-Za-z])" 开头。
你看到的是有时人们使用jQuery库,其中查询语言允许你使用
var elem = $('#objectId');
将来你会看到越来越多的人使用类似的查询语言和querySelector或querySelectorAll。
#
是CSS 中 ID 选择器的一部分。有一些库和方法支持 CSS 选择器来选择元素,例如 jQuery 和原生 DOM 方法querySelector
和querySelectorAll
.
但在“传统”的 DOM 方法中,#
没有特殊含义。将选择一个字面上具有 IDgetElementById('#ObjectName')
的元素,即.#ObjectName
<div id="#ObjectName">
前者得到一个带有 的元素id="ObjectName"
。后者获得一个带有 的元素id="#ObjectName"
。
在Selector的上下文中(例如,由 CSS 使用,document.querySelector
但不与 一起使用getElementById
),该#
字符表示它后面的文本是一个 id。
document.querySelector('ObjectName')
(使用类型选择器)会得到<ObjectName />
(无效的 HTML),而document.querySelector('#ObjectName')
会得到一个带有id="ObjectName"
.
'#ObjectName'
JQuery(编辑:或其他 JavaScript 库)
'ObjectName'
DOM (getElementById)