Понякога трябва да получа елементи като този:
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');
Не виждате това, защото това би означавало, че идентификаторът на елемента започва с #
и идентификаторът на HTML4 може да започва само с буква ([A-Za-z]).
Това, което виждате, е понякога хора, които използват библиотеката jQuery, в която езикът за заявки ви позволява да намерите обект, използвайки
var elem = $('#objectId');
И в бъдеще ще виждате все повече и повече хора, използващи подобен език за заявки с querySelector или querySelectorAll.
id
атрибутите, започващи с #
, са честни в HTML5, така че питащият технически може да е видял този код.
- person Frédéric Hamidi; 19.03.2013
#
в началото, въпреки че се препоръчва да се започва с буква и това е бъдещето сега). Другите отговори са по-актуални. Поне оправете несъответстващата скоба.
- person Sebastian Simon; 06.07.2020
#
е част от ИД селектора в CSS. Има библиотеки и методи, които поддържат CSS селектори за избиране на елементи, като jQuery и родните DOM методи querySelector
и querySelectorAll
.
Но в "традиционния" DOM метод #
няма специално значение. getElementById('#ObjectName')
ще избере елемент, който буквално има ID #ObjectName
, т.е. <div id="#ObjectName">
.
Първият получава елемент с id="ObjectName"
. Последният получава елемент с id="#ObjectName"
.
В контекста на Селектор (както се използва например от CSS и document.querySelector
, но не и с getElementById
) символът #
показва, че текстът след него е идентификатор.
document.querySelector('ObjectName')
(използвайки селектор на тип) ще получи <ObjectName />
(невалиден HTML), докато document.querySelector('#ObjectName')
ще получи елемент с id="ObjectName"
.
'#ObjectName'
JQuery (EDIT: или други JavaScript библиотеки)
'ObjectName'
DOM (getElementById)
document.getElementById("#datepicker1")
не намира моя елемент?, Защо получавам „Не мога да задам свойството“ innerHTML' of null at ahint”, Защоdocument.getElementById("#sideNav")
не намира моя елемент?, [1], [2] , и вероятно още няколко. - person Sebastian Simon   schedule 06.07.2020