15 JavaScript Методи за DOM манипулация за уеб разработчици
Като уеб разработчик често трябва да манипулирате DOM, обектния модел, който се използва от браузърите посочете логическата структура на уеб страници и въз основа на тази структура представя HTML елементи на екрана.
HTML определя по подразбиране DOM структура. Въпреки това в много случаи може да искате да манипулирате с JavaScript, обикновено, за да добавете допълнителни функции към сайт.
В тази публикация ще намерите списък с 15 основни метода на JavaScript че подпомага манипулирането на DOM. Вероятно често ще използвате тези методи в кода си и ще се сблъскате с тях в нашите уроци за JavaScript.
1. querySelector ()
Най- querySelector ()
метод връща първия елемент, който съответства на един или повече CSS селектори. Ако не се открие съвпадение, то се връща нула
.
Преди querySelector ()
бе въведена, разработчиците широко използват getElementById ()
метод, който извлича елемент с определен документ за самоличност
стойност.
Макар че getElementById ()
все още е полезен метод, но с по-новите querySelector ()
и querySelectorAll ()
методи, към които сме свободни целеви елементи на базата на който и да е CSS селектор, така имаме по-голяма гъвкавост.
Синтаксис
var ele = document.querySelector (селектор);
еле
- Първи елемент за съвпадение илинула
(ако нито един елемент не съвпада със селекторите)селектор
- един или повече CSS селектори, като например"#FooId"
,".FooClassName"
,".Class1.class2"
, или".class1, .class2"
Пример за код
В този пример първата алинея първа параграф 2 параграф 3 Тествайте за разлика от Съответните елементи се връщат като Примерът по-долу използва същия HTML като предишния. В този пример обаче всички абзаци се избират с алинея първа параграф 2 параграф 3 Събития направете справка с това, което се случва с HTML елемент, като кликване, фокусиране или зареждане, към което можем да реагираме с JavaScript. Можем да присвоим JS функции на слушам за тези събития с елементи и направете нещо, когато събитието се е случило. Има три начина, по които можете да зададете функция на определено събитие. ако Методът Спира пускането на събития, т.е. предотвратява извикването на всички слушатели на събития за същия тип събитие в предците на елемента. За да използвате тази функция, можете да използвате 2 синтаксиса: Слушателят се нарича само първия път, когато се случи събитието, след което той автоматично се отделя от събитието и вече няма да бъде задействан от него.. Действието по подразбиране на събитието не може да бъде спряно с метода preventDefault (). В този пример добавяме извикващ слушател на събитие за кликване Присвояване на Най- Използва същия синтаксис като гореспоменатия Следвайки примерния код, който използвахме в Най- По-късно можете да добавите този елемент към уеб страницата, като използвате различни методи за DOM вмъкване, като В следния пример можете да създадете нов елемент на абзаца: Най- Детето, което се вмъква, може да бъде или a новосъздаден елемент, или вече съществуващ. В последния случай той ще бъде преместен от предишното си положение до положението на последното дете. В този пример ще вмъкнем a В следващата интерактивна демонстрация, букви от Вижте как Най- В този пример премахваме Най- В този пример детето елемент Когато трябва да създадете нов елемент, който трябва да бъде същото като вече съществуващ елемент в уеб страницата можете просто създайте копие на вече съществуващия елемент използвайки В този пример създаваме копие за Като резултат, Най- Ако референтният детски елемент не съществува или сте преминали изрично В този пример създаваме нов Тази интерактивна демонстрация работи подобно на предишната ни демонстрация, принадлежаща на Най- То създава Защо просто не добавяме елементи директно към DOM дървото? Защото вмъкването на DOM причинява промени в оформлението, и това е процес на скъп браузър тъй като множество последователни вмъквания на елементи ще предизвикат повече промени в оформлението. От друга страна, добавяне на елементи към a В този пример създаваме множество редове и клетки в таблицата В резултат на това в таблицата ще се вмъкнат пет реда - всяка от които съдържа една клетка с число от 1 до 5 като съдържание -. Понякога искаш проверете стойностите на CSS свойствата на елемент, преди да се направят каквито и да е промени. Можете да използвате В този пример получаваме и предупреждаваме изчислените Най- В този пример добавяме Най- В този пример предупреждаваме стойността на Най- В този пример премахваме querySelector ()
метод и цветът му се променя на червено.
var firstDiv = document.querySelector ('div'); firstDiv.style.color = 'червен';
Интерактивна демонстрация
querySelector ()
метод в следващата интерактивна демонстрация. Просто напишете селектора, съответстващ на тези, които можете да намерите в сините кутии (напр. #три
), и натиснете бутона Избор. Обърнете внимание, че ако въведете .блок
, само първата му инстанция ще бъде избран.2.
querySelectorAll ()
querySelector ()
който връща само първата инстанция на всички съвпадащи елементи, querySelectorAll ()
връща всички елементи, които съответстват на посочения CSS селектор.NodeList
обект, който ще бъде празен обект, ако не бъдат намерени съответстващи елементи.Синтаксис
var eles = document.querySelectorAll (селектор);
Eles
- А NodeList
обект с всички съвпадащи елементи като стойности на свойства. Обектът е празен, ако не са намерени съвпадения.селектор
- един или повече CSS селектори, като например "#FooId"
, ".FooClassName"
, ".Class1.class2"
, или ".class1, .class2"
Пример за код
querySelectorAll ()
, и са оцветени в синьо.
var odstav = document.querySelectorAll ('p'); за (var p на абзаците) p.style.color = 'blue';
3.
addEventListener ()
Foo ()
е потребителска функция, можете да я регистрирате като слушател на събития при натискане (извикайте го, когато щракнете върху елемента на бутона) по три начина:
var btn = document.querySelector ("бутон"); btn.onclick = Фу;
var btn = document.querySelector ("бутон"); btn.addEventListener ('click', foo);
addEventListener ()
(третото решение) някои професионалисти; това е най-новият стандарт, позволяващ възлагането на повече от една функция като слушатели на събития на едно събитие - и се предлага с полезен набор от опции.Синтаксис
ele.addEventListener (evt, слушател, [опции]);
еле
- HTML елементът, който слушателят на събития ще слуша.EVT
- Целевото събитие.слушател
- Обикновено функцията на JavaScript.настроики
- (по избор) Обект с набор от булеви свойства (изброени по-долу).Настроики Какво се случва, когато е настроено на вярно
?улавяне
ele.addEventListener (evt, слушател, вярно)
ele.addEventListener (evt, слушател, capture: true);
веднъж
пасивен
Пример за код
Foo
, към HTML етикет.
var btn = document.querySelector ("бутон"); btn.addEventListener (с щракване, Foo); функция foo () alert ('hello');
Интерактивна демонстрация
Foo ()
персонализирана функция като слушател на събитие към някое от следните три събития: вход
, кликване
или Задържането на курсора
& Задействайте избраното събитие в долното поле за въвеждане, като задържите, щракнете или въведете в него.4.
removeEventListener ()
removeEventListener ()
метод отделя слушател на събитие предварително добавени с addEventListener ()
метод от събитието, за което слуша.Синтаксис
ele.removeEventListener (evt, слушател, [опции]);
addEventListener ()
метод (с изключение на веднъж
опция, която е изключена). Опциите се използват, за да бъдат много специфични за идентифициране на слушателя, който да бъде отделен.Пример за код
addEventListener ()
, Тук премахваме извикващия слушател на събития при кликване Foo
от елемент.
btn.removeEventListener (с щракване, Foo);
5.
createElement ()
createElement ()
метод създава нов HTML елемент използвайки име на HTML етикета да бъдат създадени, като например "Р"
или "Разделение"
.AppendChild ()
(виж по-късно в тази публикация).Синтаксис
document.createElement (име на маркер);
име на маркер
- Името на HTML маркера, който искате да създадете. Пример за код
var pEle = document.createElement ('p')
6.
appendChild ()
appendChild ()
метод добавя елемент като последно дете към елемента HTML, който извиква този метод.Синтаксис
ele.appendChild (childEle)
еле
- Елементът HTML, към който childEle
се добавя като последно дете.childEle
- Елементът HTML е добавен като последното дете на еле
.Пример за код
елемент е като дете на
appendChild ()
и горепосоченото createElement ()
методи.
var div = document.querySelector ('div'); var strong = document.createElement ('силен'); strong.textContent = 'Здравейте'; div.appendChild (силен);
Интерактивна демонстрация
#A
да се #R
са детските елементи на # Родител-он
, # Майка и две
, и # Родител-три
ИД селектори.appendChild ()
метод работи въвеждане на едно родителско и едно дете селекторно име в полетата за въвеждане по-долу. Можете да изберете и деца, принадлежащи към друг родител.7.
removeChild ()
removeChild ()
метод премахва определен елемент за дете от елемента HTML, който призовава този метод.Синтаксис
ele.removeChild (childEle)
еле
- Родителският елемент на childEle
.childEle
- Детето елемент на еле
.Пример за код
елемент, който добавихме като дете към
appendChild ()
метод. div.removeChild (силен);
8.
replaceChild ()
replaceChild ()
метод заменя детевия елемент с друг принадлежащи към родителския елемент, който извиква този метод.Синтаксис
ele.replaceChild (newChildEle, oldChileEle)
еле
- Родителски елемент, от който децата трябва да бъдат заменени.newChildEle
- Детски елемент на еле
което ще замени oldChildEle
.oldChildEle
- Детски елемент на еле
, които ще бъдат заменени с newChildEle
.Пример за код
принадлежащи към
свободен край.
var em = document.createElement ('em'); var strong = document.querySelector ('силен'); var div = document.querySelector ('div'); em.textContent = 'hi'; div.replaceChild (em, силен);
9.
cloneNode ()
cloneNode ()
метод.Синтаксис
var dupeEle = ele.cloneNode ([дълбоко])
dupeEle
- Копие на еле
елемент.еле
- Елементът HTML, който трябва да се копира.Дълбок
- (по избор) Булева стойност. Ако е настроен на вярно
, dupeEle
ще има всички детски елементи еле
има, ако е настроено на фалшив
тя ще бъде клонирана без децата си.Пример за код
елемент с
cloneNode ()
, след това го добавяме към appendChild ()
метод. елементи, както с
Здравейте
низ като съдържание.
var strong = document.querySelector ('силен'); var copy = strong.cloneNode (true); var div = document.querySelector ('div'); div.appendChild (копие);
10.
insertBefore ()
insertBefore ()
метод добавя даден елемент на детето пред друг домейн. Методът се извиква от родителския елемент.нула
на негово място се добавя детският елемент, който трябва да се вмъкне като последното дете на родителя (подобен на appendChild ()
).Синтаксис
ele.insertBefore (newEle, refEle);
еле
- Родителски елемент.newEle
- Нов HTML елемент за вмъкване.refEle
- Детски елемент на еле
пред които newEle
ще се вмъкне.Пример за код
елемент с текст вътре и го добавете преди на
елемент вътре в. \ t
var em = document.createElement ('em'); var strong = document.querySelector ('силен'); var div = document.querySelector ('div'); em.textContent = 'hi'; div.insertBefore (em, strong);
Интерактивна демонстрация
appendChild ()
метод. Тук трябва само да въведете селекторите за идентификация на два дъщерни елемента (от #A
да се #R
) в полетата за въвеждане и можете да видите как insertBefore ()
метод премества първото определено дете преди секундата.11.
createDocumentFragment ()
createDocumentFragment ()
Методът може да не е толкова известен като другите в този списък, но е важен, особено ако искате вмъкнете множество елементи в насипно състояние, като добавяне на множество редове към таблица.DocumentFragment
обект, което по същество е DOM възел, който не е част от DOM дървото. Това е като буфер, където можем да добавяме и съхраняваме други елементи (напр. Няколко реда), преди да ги добавим към желания възел в дървото DOM (например към таблица).DocumentFragment
обект не предизвиква промени в оформлението, така че можете да добавяте към него толкова елементи, колкото искате, преди да ги прехвърлите на дървото DOM, което води до промяна на оформлението само в този момент.Синтаксис
document.createDocumentFragment ()
Пример за код
createElement ()
след това ги добавете към a DocumentFragment
обект, накрая добавете този фрагмент към HTML използвайки
appendChild ()
метод.
var table = document.querySelector ("таблица"); var df = document.createDocumentFragment (); за (var i = 0; i<5; i++) var td = document.createElement("td"); var tr = document.createElement("tr"); td.textContent = i; tr.appendChild(td) df.appendChild(tr); table.appendChild(df);
12.
getComputedStyle ()
ele.style
собственост да направи същото, но getComputedStyle ()
методът е направен само за тази цел връща изчислените стойности само за четене от всички CSS свойства на даден HTML елемент.Синтаксис
var style = getComputedStyle (ele, [pseudoEle])
стил
- А CSSStyleDeclaration
обект, върнат от метода. Той съдържа всички CSS свойства и техните стойности на еле
елемент.еле
- HTML елементът, от който са извлечени стойностите на CSS свойствата.pseudoEle
- (незадължително) низ, който представлява псевдо-елемент (например, ':след'
). Ако това е споменато, тогава CSS свойствата на посочения псевдоелемент, свързани с еле
ще бъдат върнати.Пример за код
широчина
стойност на a getComputedStyle ()
метод.
var style = getComputedStyle (document.querySelector ('div')); сигнал (style.width);
13.
setAttribute ()
setAttribute ()
метод добавя нов атрибут към елемент HTML или актуализира стойността на вече съществуващ атрибут.Синтаксис
ele.setAttribute (име, стойност);
еле
- Елементът HTML, към който се добавя атрибут, или от който се актуализира атрибут.име
- Името на атрибута.стойност
- Стойността на атрибута.Пример за код
contenteditable
атрибут към a setAttribute ()
метод, който ще промени съдържанието му. var div = document.querySelector ('div'); div.setAttribute ( "contenteditable", ")
14.
getAttribute ()
getAttribute ()
метод връща стойността на определен атрибут принадлежащи към определен елемент от HTML.Синтаксис
ele.getAttribute (наименование);
еле
- Елементът HTML, от който се иска атрибут.име
- Името на атрибута.Пример за код
contenteditable
атрибут, принадлежащ на getAttribute ()
метод. var div = document.querySelector ('div'); предупреждение (div.getAttribute ( "contenteditable"))
15.
removeAttribute ()
removeAttribute ()
метод премахва даден атрибут на специфичен HTML елемент.Синтаксис
ele.removeAttribute (наименование);
еле
- Елементът HTML, чийто атрибут се премахва.име
- Името на атрибута.Пример за код
contenteditable
атрибут от var div = document.querySelector ('div'); div.removeAttribute ( "contenteditable ');