Javascript get element by class

JavaScript

JS Array
concat()
constructor
copyWithin()
entries()
every()
fill()
filter()
find()
findIndex()
forEach()
from()
includes()
indexOf()
isArray()
join()
keys()
length
lastIndexOf()
map()
pop()
prototype
push()
reduce()
reduceRight()
reverse()
shift()
slice()
some()
sort()
splice()
toString()
unshift()
valueOf()

JS Boolean
constructor
prototype
toString()
valueOf()

JS Classes
constructor()
extends
static
super

JS Date
constructor
getDate()
getDay()
getFullYear()
getHours()
getMilliseconds()
getMinutes()
getMonth()
getSeconds()
getTime()
getTimezoneOffset()
getUTCDate()
getUTCDay()
getUTCFullYear()
getUTCHours()
getUTCMilliseconds()
getUTCMinutes()
getUTCMonth()
getUTCSeconds()
now()
parse()
prototype
setDate()
setFullYear()
setHours()
setMilliseconds()
setMinutes()
setMonth()
setSeconds()
setTime()
setUTCDate()
setUTCFullYear()
setUTCHours()
setUTCMilliseconds()
setUTCMinutes()
setUTCMonth()
setUTCSeconds()
toDateString()
toISOString()
toJSON()
toLocaleDateString()
toLocaleTimeString()
toLocaleString()
toString()
toTimeString()
toUTCString()
UTC()
valueOf()

JS Error
name
message

JS Global
decodeURI()
decodeURIComponent()
encodeURI()
encodeURIComponent()
escape()
eval()
Infinity
isFinite()
isNaN()
NaN
Number()
parseFloat()
parseInt()
String()
undefined
unescape()

JS JSON
parse()
stringify()

JS Math
abs()
acos()
acosh()
asin()
asinh()
atan()
atan2()
atanh()
cbrt()
ceil()
clz32()
cos()
cosh()
E
exp()
expm1()
floor()
fround()
LN2
LN10
log()
log10()
log1p()
log2()
LOG2E
LOG10E
max()
min()
PI
pow()
random()
round()
sign()
sin()
sqrt()
SQRT1_2
SQRT2
tan()
tanh()
trunc()

JS Number
constructor
isFinite()
isInteger()
isNaN()
isSafeInteger()
MAX_VALUE
MIN_VALUE
NEGATIVE_INFINITY
NaN
POSITIVE_INFINITY
prototype
toExponential()
toFixed()
toLocaleString()
toPrecision()
toString()
valueOf()

JS OperatorsJS RegExp
constructor
compile()
exec()
g
global
i
ignoreCase
lastIndex
m
multiline
n+
n*
n?
n{X}
n{X,Y}
n{X,}
n$
^n
?=n
?!n
source
test()
toString()

(x|y)
.
\w
\W
\d
\D
\s
\S
\b
\B
\0
\n
\f
\r
\t
\v
\xxx
\xdd
\uxxxx

JS Statements
break
class
continue
debugger
do…while
for
for…in
for…of
function
if…else
return
switch
throw
try…catch
var
while

JS String
charAt()
charCodeAt()
concat()
constructor
endsWith()
fromCharCode()
includes()
indexOf()
lastIndexOf()
length
localeCompare()
match()
prototype
repeat()
replace()
search()
slice()
split()
startsWith()
substr()
substring()
toLocaleLowerCase()
toLocaleUpperCase()
toLowerCase()
toString()
toUpperCase()
trim()
valueOf()

Definition and Usage

The getElementsByName() method returns a collection of all elements in the document with the specified
name (the value of the name attribute), as an
HTMLCollection object.

The HTMLCollection object represents a collection of nodes. The nodes can be accessed by index numbers. The index starts at 0.

Tip: You can use the
length property of the
HTMLCollection object to determine the number of elements
with the specified name, then you can loop through all elements and extract the
info you want.

Note: In HTML5, the «name» attribute is deprecated and has
been replaced by the «id» attribute for many elements. Use the
document.getElementById() method where it is appropriate. Also look at the
getElementsByClassName() and
getElementsByTagName()
methods.

JavaScript

JS Array
concat()
constructor
copyWithin()
entries()
every()
fill()
filter()
find()
findIndex()
forEach()
from()
includes()
indexOf()
isArray()
join()
keys()
length
lastIndexOf()
map()
pop()
prototype
push()
reduce()
reduceRight()
reverse()
shift()
slice()
some()
sort()
splice()
toString()
unshift()
valueOf()

JS Boolean
constructor
prototype
toString()
valueOf()

JS Classes
constructor()
extends
static
super

JS Date
constructor
getDate()
getDay()
getFullYear()
getHours()
getMilliseconds()
getMinutes()
getMonth()
getSeconds()
getTime()
getTimezoneOffset()
getUTCDate()
getUTCDay()
getUTCFullYear()
getUTCHours()
getUTCMilliseconds()
getUTCMinutes()
getUTCMonth()
getUTCSeconds()
now()
parse()
prototype
setDate()
setFullYear()
setHours()
setMilliseconds()
setMinutes()
setMonth()
setSeconds()
setTime()
setUTCDate()
setUTCFullYear()
setUTCHours()
setUTCMilliseconds()
setUTCMinutes()
setUTCMonth()
setUTCSeconds()
toDateString()
toISOString()
toJSON()
toLocaleDateString()
toLocaleTimeString()
toLocaleString()
toString()
toTimeString()
toUTCString()
UTC()
valueOf()

JS Error
name
message

JS Global
decodeURI()
decodeURIComponent()
encodeURI()
encodeURIComponent()
escape()
eval()
Infinity
isFinite()
isNaN()
NaN
Number()
parseFloat()
parseInt()
String()
undefined
unescape()

JS JSON
parse()
stringify()

JS Math
abs()
acos()
acosh()
asin()
asinh()
atan()
atan2()
atanh()
cbrt()
ceil()
clz32()
cos()
cosh()
E
exp()
expm1()
floor()
fround()
LN2
LN10
log()
log10()
log1p()
log2()
LOG2E
LOG10E
max()
min()
PI
pow()
random()
round()
sign()
sin()
sqrt()
SQRT1_2
SQRT2
tan()
tanh()
trunc()

JS Number
constructor
isFinite()
isInteger()
isNaN()
isSafeInteger()
MAX_VALUE
MIN_VALUE
NEGATIVE_INFINITY
NaN
POSITIVE_INFINITY
prototype
toExponential()
toFixed()
toLocaleString()
toPrecision()
toString()
valueOf()

JS OperatorsJS RegExp
constructor
compile()
exec()
g
global
i
ignoreCase
lastIndex
m
multiline
n+
n*
n?
n{X}
n{X,Y}
n{X,}
n$
^n
?=n
?!n
source
test()
toString()

(x|y)
.
\w
\W
\d
\D
\s
\S
\b
\B
\0
\n
\f
\r
\t
\v
\xxx
\xdd
\uxxxx

JS Statements
break
class
continue
debugger
do…while
for
for…in
for…of
function
if…else
return
switch
throw
try…catch
var
while

JS String
charAt()
charCodeAt()
concat()
constructor
endsWith()
fromCharCode()
includes()
indexOf()
lastIndexOf()
length
localeCompare()
match()
prototype
repeat()
replace()
search()
slice()
split()
startsWith()
substr()
substring()
toLocaleLowerCase()
toLocaleUpperCase()
toLowerCase()
toString()
toUpperCase()
trim()
valueOf()

JavaScript

JS Array
concat()
constructor
copyWithin()
entries()
every()
fill()
filter()
find()
findIndex()
forEach()
from()
includes()
indexOf()
isArray()
join()
keys()
length
lastIndexOf()
map()
pop()
prototype
push()
reduce()
reduceRight()
reverse()
shift()
slice()
some()
sort()
splice()
toString()
unshift()
valueOf()

JS Boolean
constructor
prototype
toString()
valueOf()

JS Classes
constructor()
extends
static
super

JS Date
constructor
getDate()
getDay()
getFullYear()
getHours()
getMilliseconds()
getMinutes()
getMonth()
getSeconds()
getTime()
getTimezoneOffset()
getUTCDate()
getUTCDay()
getUTCFullYear()
getUTCHours()
getUTCMilliseconds()
getUTCMinutes()
getUTCMonth()
getUTCSeconds()
now()
parse()
prototype
setDate()
setFullYear()
setHours()
setMilliseconds()
setMinutes()
setMonth()
setSeconds()
setTime()
setUTCDate()
setUTCFullYear()
setUTCHours()
setUTCMilliseconds()
setUTCMinutes()
setUTCMonth()
setUTCSeconds()
toDateString()
toISOString()
toJSON()
toLocaleDateString()
toLocaleTimeString()
toLocaleString()
toString()
toTimeString()
toUTCString()
UTC()
valueOf()

JS Error
name
message

JS Global
decodeURI()
decodeURIComponent()
encodeURI()
encodeURIComponent()
escape()
eval()
Infinity
isFinite()
isNaN()
NaN
Number()
parseFloat()
parseInt()
String()
undefined
unescape()

JS JSON
parse()
stringify()

JS Math
abs()
acos()
acosh()
asin()
asinh()
atan()
atan2()
atanh()
cbrt()
ceil()
clz32()
cos()
cosh()
E
exp()
expm1()
floor()
fround()
LN2
LN10
log()
log10()
log1p()
log2()
LOG2E
LOG10E
max()
min()
PI
pow()
random()
round()
sign()
sin()
sqrt()
SQRT1_2
SQRT2
tan()
tanh()
trunc()

JS Number
constructor
isFinite()
isInteger()
isNaN()
isSafeInteger()
MAX_VALUE
MIN_VALUE
NEGATIVE_INFINITY
NaN
POSITIVE_INFINITY
prototype
toExponential()
toFixed()
toLocaleString()
toPrecision()
toString()
valueOf()

JS OperatorsJS RegExp
constructor
compile()
exec()
g
global
i
ignoreCase
lastIndex
m
multiline
n+
n*
n?
n{X}
n{X,Y}
n{X,}
n$
^n
?=n
?!n
source
test()
toString()

(x|y)
.
\w
\W
\d
\D
\s
\S
\b
\B
\0
\n
\f
\r
\t
\v
\xxx
\xdd
\uxxxx

JS Statements
break
class
continue
debugger
do…while
for
for…in
for…of
function
if…else
return
switch
throw
try…catch
var
while

JS String
charAt()
charCodeAt()
concat()
constructor
endsWith()
fromCharCode()
includes()
indexOf()
lastIndexOf()
length
localeCompare()
match()
prototype
repeat()
replace()
search()
slice()
split()
startsWith()
substr()
substring()
toLocaleLowerCase()
toLocaleUpperCase()
toLowerCase()
toString()
toUpperCase()
trim()
valueOf()

JavaScript

JS Array
concat()
constructor
copyWithin()
entries()
every()
fill()
filter()
find()
findIndex()
forEach()
from()
includes()
indexOf()
isArray()
join()
keys()
length
lastIndexOf()
map()
pop()
prototype
push()
reduce()
reduceRight()
reverse()
shift()
slice()
some()
sort()
splice()
toString()
unshift()
valueOf()

JS Boolean
constructor
prototype
toString()
valueOf()

JS Classes
constructor()
extends
static
super

JS Date
constructor
getDate()
getDay()
getFullYear()
getHours()
getMilliseconds()
getMinutes()
getMonth()
getSeconds()
getTime()
getTimezoneOffset()
getUTCDate()
getUTCDay()
getUTCFullYear()
getUTCHours()
getUTCMilliseconds()
getUTCMinutes()
getUTCMonth()
getUTCSeconds()
now()
parse()
prototype
setDate()
setFullYear()
setHours()
setMilliseconds()
setMinutes()
setMonth()
setSeconds()
setTime()
setUTCDate()
setUTCFullYear()
setUTCHours()
setUTCMilliseconds()
setUTCMinutes()
setUTCMonth()
setUTCSeconds()
toDateString()
toISOString()
toJSON()
toLocaleDateString()
toLocaleTimeString()
toLocaleString()
toString()
toTimeString()
toUTCString()
UTC()
valueOf()

JS Error
name
message

JS Global
decodeURI()
decodeURIComponent()
encodeURI()
encodeURIComponent()
escape()
eval()
Infinity
isFinite()
isNaN()
NaN
Number()
parseFloat()
parseInt()
String()
undefined
unescape()

JS JSON
parse()
stringify()

JS Math
abs()
acos()
acosh()
asin()
asinh()
atan()
atan2()
atanh()
cbrt()
ceil()
clz32()
cos()
cosh()
E
exp()
expm1()
floor()
fround()
LN2
LN10
log()
log10()
log1p()
log2()
LOG2E
LOG10E
max()
min()
PI
pow()
random()
round()
sign()
sin()
sqrt()
SQRT1_2
SQRT2
tan()
tanh()
trunc()

JS Number
constructor
isFinite()
isInteger()
isNaN()
isSafeInteger()
MAX_VALUE
MIN_VALUE
NEGATIVE_INFINITY
NaN
POSITIVE_INFINITY
prototype
toExponential()
toFixed()
toLocaleString()
toPrecision()
toString()
valueOf()

JS OperatorsJS RegExp
constructor
compile()
exec()
g
global
i
ignoreCase
lastIndex
m
multiline
n+
n*
n?
n{X}
n{X,Y}
n{X,}
n$
^n
?=n
?!n
source
test()
toString()

(x|y)
.
\w
\W
\d
\D
\s
\S
\b
\B
\0
\n
\f
\r
\t
\v
\xxx
\xdd
\uxxxx

JS Statements
break
class
continue
debugger
do…while
for
for…in
for…of
function
if…else
return
switch
throw
try…catch
var
while

JS String
charAt()
charCodeAt()
concat()
constructor
endsWith()
fromCharCode()
includes()
indexOf()
lastIndexOf()
length
localeCompare()
match()
prototype
repeat()
replace()
search()
slice()
split()
startsWith()
substr()
substring()
toLocaleLowerCase()
toLocaleUpperCase()
toLowerCase()
toString()
toUpperCase()
trim()
valueOf()

Пример использования

<!DOCTYPE html>
<html>
	<head>
		<title>Использование JavaScript метода document.getElementsByClassName() (перебор элементов в цикле)</title>
	</head>
	<body>
		<button onclick = "myFunc()">Нажми меня</button> <!-- добавляем атрибут событий onclick -->
		<div class = "block">Первый блок</div>
		<div class = "block">Второй блок</div>
		<div class = "block">Третий блок</div>
		<script>
	function myFunc() {
	  let blocks = document.getElementsByClassName( "block" ); // находим элементы с классом block
	  for( let i = 0; i blocks.length; i++){ // проходим циклом по всем элементам массивоподобного объекта
	    blocks[i].style.color = "green"; // устанавливаем зеленый цвет текста каждому элементу
	  }		
	}
		</script>
	</body>
</html>

В этом примере с использованием атрибута событий onclick при нажатии на кнопку (HTML элемент <button>) вызываем функцию myFunc(), которая с использованием JavaScript метода document.getElementsByClassName() выбирает все элементы с определенным глобальным атрибутом class и инициализируем переменную этим значением (массивоподобный объект). После этого мы проходим циклом по всем элементам этого массивоподобного объекта (объект NodeList) и устанавливаем зеленый цвет текста каждому элементу.

Результат нашего примера:


Пример использования JavaScript метода document.getElementsByClassName()

В следующем примере мы рассмотрим как найти элемент с конкретным классом, с конкретными классами, элемент с конкретным классом, осуществляя при этом поиск внутри другого элемента, а не всего документа:

<!DOCTYPE html>
<html>
	<head>
		<title>Использование JavaScript метода document.getElementsByClassName()</title>
	</head>
	<body>
		<button onclick = "myFunc()">Нажми меня</button> <!-- добавляем атрибут событий onclick -->
		<div class = "first">Первый блок<span class = "test"></span></div>
		<div class = "second block">Второй блок</div>
		<div class = "third block">Третий блок</div>
		<script>
	function myFunc() {
	  let first = document.getElementsByClassName( "first" ),   // находим элементы с классом first
	      second = document.getElementsByClassName( "second" ), // находим элементы с классом second
	      third = document.getElementsByClassName( "third" );   // находим элементы с классом third

	  let extra = document.getElementsByClassName( "second block" ),   // находим элементы с классами second и block
    
	  first.style.color = "red";    // изменяем цвет текста у первого элемента коллекции
	  second.style.color = "green"; // изменяем цвет текста у первого элемента коллекции
	  third.style.color = "blue";   // изменяем цвет текста у первого элемента коллекции
	  extra.style.border = "1px solid green"; // устанавливаем сплошную границу зеленого цвета у первого элемента коллекции
	  first.getElementsByClassName( "test" ).innerHTML=" !!!"; // находим внутри первого элемента коллекции элементы с классом test и изменяем их текстовое содержимое		
	  	  }
		</script>
	</body>
</html>

В этом примере мы с использованием атрибута событий onclick при нажатии на кнопку (HTML элемент <button>) вызываем функцию myFunc(), которая:

С использованием JavaScript метода document.getElementsByClassName() выбирает все элементы с определенным глобальным атрибутом class и инициализирует три переменные этими значениями (массивоподобные объекты).
С использованием JavaScript метода document.getElementsByClassName() выбирает все элементы, которые имеют два класса («second» и «block») и инициализирует переменную этим значением

Обратите внимание, что элемент должен иметь именно два класса, а не один из искомых.

После этого в зависимости от переменной устанавливаем первому элементу коллекции свой цвет текста, первому элементу в переменной extra устанавливаем сплошную границу зеленого цвета.
И в заключении мы вызываем метод .getElementsByClassName() на первом элементе коллекции, содержащейся в переменной first и находим элемент с классом test внутри этого элемента, которому с помощью метода innerHTML() устанавливаем новое текстовое содержимое.

Результат нашего примера:


Пример использования JavaScript метода document.getElementsByClassName()JavaScript Document

More Examples

Example

Change the background color of the second element with class=»child» inside of a <div> element:

var x =
document.getElementById(«myDIV»);x.getElementsByClassName(«child»).style.backgroundColor = «red»;

Example

Find out how many elements with class=»child» there are inside of a <div>
element (using the length
property of the NodeList object):

var x =
document.getElementById(«myDIV»).getElementsByClassName(«child»).length;

Example

Change the background color of the first element with both the «child» and
«color» class inside of an element with class=»example»:

var x = document.getElementsByClassName(«example»);
x.getElementsByClassName(«child color»).style.backgroundColor = «red»;

Example

Change the background color of all elements with class=»child» inside of a
<div> element:

var x = document.getElementById(«myDIV»);var y = x.getElementsByClassName(«child»);var i;for (i = 0; i < y.length; i++) {  y.style.backgroundColor = «red»;}

Методы интерфейса Document

Метод Описание Chrome Firefox Opera Safari IExplorer Edge
adoptNode() Метод позволяет принять узел из любого документа, частью которого он являлся на момент вызова,
и записывает в свойство Node.ownerDocument ссылку на текущий документ,
подготавливая его к добавлению в текущий документ.
Да Да Да Да 9.0 Да
close() Метод завершает запись в документ (закрывает поток открытый с помощью метода open() объекта Document) Да Да Да Да Да Да
createAttribute() Метод создает новый атрибут с указанным именем (объект Attr) и возвращает его. Да Да Да Да Да Да
createCDATASection() Создает узел CDATASection и возвращает его (только для XML документов). Да Да Да Да Да Да
createComment() Позволяет создать новый узел комментария и возвратить его. Да Да Да Да Да Да
createDocumentFragment() Позволяет создать новый пустой объект DocumentFragment, предназначенный для создания фрагмента документа, в который впоследствии допускается добавить новые элементы и узлы, а затем присоединить этот фрагмент к основному дереву DOM. Да Да Да Да Да Да
createElement() Метод позволяет создать и вернуть новый элемент (пустой узел Element) с указанным именем тега. Да Да Да Да Да Да
createElementNS() Метод позволяет создать и вернуть новый элемент (пустой узел Element) с указанным именем тега с указанным URI пространства имен. Да Да Да Да Да Да
createEvent() Метод создает событие указанного типа. Да Да Да Да 9.0 Да
createNodeIterator() Возвращает новый объект NodeIterator. Да Да Да Да 9.0 Да
createTextNode() Метод позволяет создать и вернуть текстовый узел с указанным текстом. Да Да Да Да Да Да
getElementById() Метод возвращает объект Element, представляющий из себя элемент, глобальный атрибут id которого соответствует указанной строке. Да Да Да Да Да Да
getElementsByClassName() Возвращает массивоподобный (итерируемый) объект всех дочерних элементов, которые соответствуют указанному имени классу, или классам. Да Да Да Да Да Да
getElementsByName() Метод возвращает коллекцию всех элементов документа с указанным именем (значением атрибута name) в виде объекта NodeList. Да Да Да Да Да Да
getElementsByTagName() Метод возвращает коллекцию всех элементов документа с указанным именем тега в виде объекта HTMLCollection. Да Да Да Да Да Да
getElementsByTagNameNS() Метод возвращает коллекцию всех элементов документа с указанным именем тега в виде объекта NodeList, принадлежащих определенному пространству имен Да Да Да Да Да Да
hasFocus() Метод возвращает логическое значение, которое указывает на то, имеет ли документ, или любой элемент внутри документа фокус. Да Да Да Да Да Да
importNode() Метод создает новую копию указанного узла (объект Node) или фрагмента (объект DocumentFragment) из другого документа для возможности вставки в текущий документ. Да Да Да Да 9.0* Да
open() Метод позволяет открыть поток для записи документа (данные могут быть переданы с помощью методов write() или writeln() объекта Document). Да Да Да Да Да Да
querySelector() Метод возвращает первый элемент в документе (объект Element), соответствующий указанному селектору, или группе селекторов. Да Да Да Да 8.0* Да
querySelectorAll() Метод возвращает список элементов в пределах документа (статичный (не живой) объект типа NodeList), соответствующих указанному селектору, или группе селекторов. Да Да Да Да 8.0* Да
write() Записывает в поток документа строку текста. Да Да Да Да Да Да
writeln() Записывает в поток документа строку текста за которой следует символ новой строки. Да Да Да Да Да Да

Events

Listen to these events using or by assigning an event listener to the property of this interface.

Fired when an element does not satisfy its constraints during constraint validation.
Also available via the property.
Fired when an animation unexpectedly aborts.
Also available via the property.
Fired when an animation has completed normally.
Also available via the property.
Fired when an animation iteration has completed.
Also available via the property.
Fired when an animation starts.
Also available via the property.
Fired when the value of an , , or element is about to be modified.
Fired when the of an , , or element has been changed.
Also available via the property.
Fired when the of an , , or element has been changed and committed by the user. Unlike the event, the event is not necessarily fired for each alteration to an element’s .
Fired when an element captures a pointer using .
Also available via the property.
Fired when a is released.
Also available via the property.
Fired when a pointer event is canceled.
Also available via the property.
Fired when a pointer becomes active.
Also available via the property.
Fired when a pointer is moved into the hit test boundaries of an element or one of its descendants.
Also available via the property.
Fired when a pointer is moved out of the hit test boundaries of an element.
Also available via the property.
Fired when a pointer changes coordinates.
Also available via the property.
Fired when a pointer is moved out of the hit test boundaries of an element (among other reasons).
Also available via the property.
Fired when a pointer is moved into an element’s hit test boundaries.
Also available via the property.
Fired when a pointer is no longer active.
Also available via the property.
Fired when a CSS transition is canceled.
Also available via the property.
Fired when a CSS transition has completed.
Also available via the property.
Fired when a CSS transition is first created.
Also available via the property.
Fired when a CSS transition has actually started.
Also available via the property.

document.getElementById или просто id

Если у элемента есть атрибут , то мы можем получить его вызовом , где бы он ни находился.

Например:

Также есть глобальная переменная с именем, указанным в :

…Но это только если мы не объявили в JavaScript переменную с таким же именем, иначе она будет иметь приоритет:

Пожалуйста, не используйте такие глобальные переменные для доступа к элементам

Это поведение соответствует , но поддерживается в основном для совместимости, как осколок далёкого прошлого.

Браузер пытается помочь нам, смешивая пространства имён JS и DOM. Это удобно для простых скриптов, которые находятся прямо в HTML, но, вообще говоря, не очень хорошо. Возможны конфликты имён. Кроме того, при чтении JS-кода, не видя HTML, непонятно, откуда берётся переменная.

В этом учебнике мы будем обращаться к элементам по в примерах для краткости, когда очевидно, откуда берётся элемент.

В реальной жизни лучше использовать .

Значение должно быть уникальным

Значение должно быть уникальным. В документе может быть только один элемент с данным .

Если в документе есть несколько элементов с одинаковым значением , то поведение методов поиска непредсказуемо. Браузер может вернуть любой из них случайным образом. Поэтому, пожалуйста, придерживайтесь правила сохранения уникальности .

Только , а не

Метод можно вызвать только для объекта . Он осуществляет поиск по по всему документу.

getElementsBy*

Существуют также другие методы поиска элементов по тегу, классу и так далее.

На данный момент, они скорее исторические, так как более чем эффективен.

Здесь мы рассмотрим их для полноты картины, также вы можете встретить их в старом коде.

  • ищет элементы с данным тегом и возвращает их коллекцию. Передав вместо тега, можно получить всех потомков.
  • возвращает элементы, которые имеют данный CSS-класс.
  • возвращает элементы с заданным атрибутом . Очень редко используется.

Например:

Давайте найдём все в таблице:

Не забываем про букву !

Одна из самых частых ошибок начинающих разработчиков (впрочем, иногда и не только) – это забыть букву . То есть пробовать вызывать метод вместо .

Буква отсутствует в названии метода , так как в данном случае возвращает один элемент. Но вернёт список элементов, поэтому обязательна.

Возвращает коллекцию, а не элемент!

Другая распространённая ошибка – написать:

Попытка присвоить значение коллекции, а не элементам внутри неё, не сработает.

Нужно перебрать коллекцию в цикле или получить элемент по номеру и уже ему присваивать значение, например, так:

Ищем элементы с классом :

Properties

Inherits properties from its parent interface, , and by extension that interface’s parent, . It implements the properties of , , , and .

Read only
Returns a object containing the assigned attributes of the corresponding HTML element.
Read only
Returns a containing the list of class attributes.
Is a representing the class of the element.
Read only
Returns a representing the inner height of the element.
Read only
Returns a representing the width of the left border of the element.
Read only
Returns a representing the width of the top border of the element.
Read only
Returns a representing the inner width of the element.
Read only
Returns a containing the label exposed to accessibility.
Read only
Returns a containing the ARIA role that has been applied to a particular element.
Is a representing the id of the element.
Is a representing the markup of the element’s content.
Read only
A representing the local part of the qualified name of the element.
Read only
The namespace URI of the element, or if it is no namespace.

Note: In Firefox 3.5 and earlier, HTML elements are in no namespace. In later versions, HTML elements are in the namespace in both HTML and XML trees.

Read only
Is an , the element immediately following the given one in the tree, or if there’s no sibling node.
Is a representing the markup of the element including its content. When used as a setter, replaces the element with nodes parsed from the given string.
Represents the part identifier(s) of the element (i.e. set using the attribute), returned as a .
Read only
A representing the namespace prefix of the element, or if no prefix is specified.
Read only
Is a , the element immediately preceding the given one in the tree, or if there is no sibling element.
Read only
Returns a representing the scroll view height of an element.
Is a representing the left scroll offset of the element.
This API has not been standardized.Read only
Returns a representing the maximum left scroll offset possible for the element.
A representing number of pixels the top of the document is scrolled vertically.
This API has not been standardized.Read only
Returns a representing the maximum top scroll offset possible for the element.
Read only
Returns a representing the scroll view width of the element.
Read only
Returns the open shadow root that is hosted by the element, or null if no open shadow root is present.
This API has not been standardized.Read only
Returns the shadow root that is hosted by the element, regardless if its open or closed. Available only to WebExtensions.
This is an experimental API that should not be used in production code.
Returns the name of the shadow DOM slot the element is inserted in.
This API has not been standardized.
Is a indicating if the element can receive input focus via the tab key.
Read only
Returns a with the name of the tag for the given element.
This is an experimental API that should not be used in production code.Read only
Returns the associated with the element.
This is an experimental API that should not be used in production code.
Is a indicating if the element is an undo scope host, or not.

Note: DOM Level 3 defined , and on the interface. In DOM4 they were moved to .

This change is implemented in Chrome since version 46.0 and Firefox since version 48.0.

The interface includes the following property, defined on the mixin.

Read only
Returns a representing the the node is inserted in.
An event handler for the event, which is sent when the element enters or exits full-screen mode. This can be used to watch both for successful expected transitions, but also to watch for unexpected changes, such as when your app is running in the background.
An event handler for the event, which is sent when an error occurs while attempting to change into full-screen mode.

Specifications

Specification Status Comment
Working Draft Added the method.
Web Animations Working Draft Added the method.
UndoManager and DOMTransactionThe definition of ‘Element’ in that specification. Editor’s Draft Added the and properties.
Recommendation Added the following event handlers: and .
Added the following methods: and .
Obsolete Added the following event handlers: and .
Added the following methods: and .
Obsolete Added the following methods: and .
Candidate Recommendation Added the method.
Living Standard Added the method.
Working Draft Added the following properties: , and .
Added the following method: .
Working Draft Added the following properties: , , , , , , , and .
Added the following methods: , , , , and .
Obsolete Added inheritance of the interface.
Living Standard Added the following methods: , and .
Moved from the interface to this one.
Obsolete Removed the following methods: , , and .
Modified the return value of and .
Removed the property.
Obsolete Added the following methods: , , and . These methods were never implemented and have been removed in later specifications.
Added the property. This property was never implemented and has been removed in later specifications.
Obsolete The method has been moved to .
Obsolete Initial definition.

Итого

Есть 6 основных методов поиска элементов в DOM:

Метод Ищет по… Ищет внутри элемента? Возвращает живую коллекцию?
CSS-selector
CSS-selector
tag or
class

Безусловно, наиболее часто используемыми в настоящее время являются методы и , но и методы могут быть полезны в отдельных случаях, а также встречаются в старом коде.

Кроме того:

  • Есть метод , который проверяет, удовлетворяет ли элемент CSS-селектору.
  • Метод ищет ближайшего по иерархии предка, соответствующему данному CSS-селектору. Сам элемент также включён в поиск.

И, напоследок, давайте упомянем ещё один метод, который проверяет наличие отношений между предком и потомком:

elemA.contains(elemB) вернёт true, если elemB находится внутри elemA (elemB потомок elemA) или когда elemA==elemB.

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий