15 μέθοδοι JavaScript για χειρισμό DOM για προγραμματιστές Web
Ως προγραμματιστής ιστού, πρέπει συχνά να χειριστείτε το DOM, το μοντέλο αντικειμένου που χρησιμοποιείται από τα προγράμματα περιήγησης σε καθορίστε τη λογική δομή των ιστοσελίδων, και με βάση αυτή τη δομή να αποδίδει στοιχεία HTML στην οθόνη.
Το HTML ορίζει το προεπιλεγμένη δομή DOM. Ωστόσο, σε πολλές περιπτώσεις μπορεί να θέλετε να χειριστείτε αυτό με JavaScript, συνήθως για να προσθέστε πρόσθετες λειτουργίες σε μια τοποθεσία.
Σε αυτή τη θέση, θα βρείτε μια λίστα με 15 βασικές μεθόδους JavaScript ότι βοήθεια DOM 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 Δοκιμάστε το Διαφορετικός Τα στοιχεία αντιστοίχισης επιστρέφονται ως a Το παρακάτω παράδειγμα χρησιμοποιεί το ίδιο HTML με το προηγούμενο. Ωστόσο, σε αυτό το παράδειγμα, όλες οι παράγραφοι επιλέγονται με πρώτο εδάφιο παράγραφος 2 παράγραφος 3 Εκδηλώσεις ανατρέξτε σε αυτό που συμβαίνει με ένα στοιχείο HTML, όπως κλικ, εστίαση ή φόρτωση, στο οποίο μπορούμε να αντιδράσουμε με το JavaScript. Μπορούμε να αντιστοιχίσουμε τις λειτουργίες JS ακούω για τα γεγονότα αυτά στα στοιχεία και να κάνει κάτι όταν συνέβη το γεγονός. Υπάρχουν τρεις τρόποι που μπορείτε εκχωρήσετε μια συνάρτηση σε ένα συγκεκριμένο συμβάν. Αν Η μέθοδος Σταματά τη διοχέτευση συμβάντων, δηλ. Αποτρέπει την κλήση οποιουδήποτε ακροατηρίου συμβάντος για τον ίδιο τύπο συμβάντος στους προγόνους του στοιχείου. Για να χρησιμοποιήσετε αυτή τη λειτουργία, μπορείτε να χρησιμοποιήσετε 2 σύνταξη: Ο ακροατής καλείται μόνο την πρώτη φορά που συμβαίνει το συμβάν, τότε αποσπάται αυτόματα από το συμβάν και δεν θα ενεργοποιηθεί πλέον. Η προεπιλεγμένη ενέργεια του συμβάντος δεν μπορεί να διακοπεί με τη μέθοδο prevenDefault (). Σε αυτό το παράδειγμα, προσθέτουμε έναν ακροατή συμβάντος κλικ που ονομάζεται Εκχωρήστε το ο Χρησιμοποιεί την ίδια σύνταξη με τα παραπάνω Μετά το παράδειγμα κώδικα χρησιμοποιήσαμε το ο Μπορείτε αργότερα να προσθέσετε αυτό το στοιχείο στην ιστοσελίδα χρησιμοποιώντας διαφορετικά μεθόδους εισαγωγής DOM, όπως Με το ακόλουθο παράδειγμα, μπορείτε να δημιουργήσετε ένα νέο στοιχείο παραγράφου: ο Το παιδί που εισάγεται μπορεί να είναι είτε α νεοσύστατο στοιχείο, ή ένα ήδη υπάρχουσα. Στην τελευταία περίπτωση, θα μετακινηθεί από την προηγούμενη θέση στη θέση του τελευταίου παιδιού. Σε αυτό το παράδειγμα, εισάγουμε a Στο ακόλουθο διαδραστικό demo, γράμματα από το Ελέγξτε πώς το ο Σε αυτό το παράδειγμα, αφαιρούμε το ο Σε αυτό το παράδειγμα το στοιχείο του παιδιού Όταν πρέπει να δημιουργήσετε ένα νέο στοιχείο που πρέπει να είναι το ίδιο με ένα ήδη υπάρχον στοιχείο στην ιστοσελίδα, μπορείτε απλά δημιουργήστε ένα αντίγραφο του ήδη υπάρχοντος στοιχείου χρησιμοποιώντας το Σε αυτό το παράδειγμα, δημιουργούμε ένα αντίγραφο για το Σαν άποτέλεσμα, ο Εάν το αναφερόμενο παιδικό στοιχείο δεν υπάρχει ή δεν έχετε περάσει ρητά Σε αυτό το παράδειγμα, δημιουργούμε ένα νέο Αυτό το διαδραστικό demo λειτουργεί παρόμοια με το προηγούμενο demo που ανήκει στο ο Το δημιουργεί ένα Γιατί δεν προσθέτουμε μόνο στοιχεία απευθείας στο δέντρο DOM; Επειδή η εισαγωγή DOM προκαλεί αλλαγές διάταξης, και είναι ένα δαπανηρή διαδικασία του προγράμματος περιήγησης καθώς οι πολλαπλές παρεμβολές των στοιχείων θα προκαλέσουν περισσότερες αλλαγές στο layout. Από την άλλη πλευρά, προσθέτοντας στοιχεία σε ένα Σε αυτό το παράδειγμα, δημιουργούμε πολλές γραμμές και κελιά πίνακα με το Ως αποτέλεσμα, μέσα στο τραπέζι θα εισαχθούν πέντε σειρές - καθένα από τα οποία περιέχει ένα κελί με αριθμό από 1 έως 5 ως περιεχόμενο -. Μερικές φορές θέλετε ελέγξτε τις τιμές ιδιότητας CSS ενός στοιχείου προτού προβείτε σε οποιεσδήποτε αλλαγές. Μπορείτε να χρησιμοποιήσετε το Σε αυτό το παράδειγμα, παίρνουμε και ειδοποιούμε τα υπολογισμένα ο Σε αυτό το παράδειγμα, προσθέτουμε το ο Σε αυτό το παράδειγμα, ειδοποιούμε την αξία του ο Σε αυτό το παράδειγμα, αφαιρούμε το querySelector ()
και το χρώμα του αλλάζει σε κόκκινο χρώμα.
var firstDiv = document.querySelector ('div'); firstDiv.style.color = 'κόκκινο';
Διαδραστική επίδειξη
querySelector ()
στην ακόλουθη διαδραστική επίδειξη. Απλά πληκτρολογήστε έναν επιλογέα που ταιριάζει με αυτούς που μπορείτε να βρείτε μέσα στα μπλε κουτιά (π.χ.. #τρία
) και κάντε κλικ στο κουμπί Επιλογή. Σημειώστε ότι εάν πληκτρολογείτε .ΟΙΚΟΔΟΜΙΚΟ ΤΕΤΡΑΓΩΝΟ
, μόνο την πρώτη του εμφάνιση θα επιλεγεί.2.
querySelectorAll ()
querySelector ()
που επιστρέφει μόνο την πρώτη εμφάνιση όλων των στοιχείων αντιστοίχισης, querySelectorAll ()
επιστρέφει όλα τα στοιχεία που ταιριάζουν με τον καθορισμένο επιλογέα CSS.NodeList
αντικείμενο που θα είναι ένα κενό αντικείμενο αν δεν βρεθούν στοιχεία ταυτοποίησης.Σύνταξη
var eles = document.querySelectorAll (επιλογέας);
ες
- ΕΝΑ NodeList
αντικείμενο με όλα τα στοιχεία αντιστοίχισης ως τιμές ιδιοτήτων. Το αντικείμενο είναι κενό αν δεν βρεθούν καμιά αντιστοιχία.εκλέκτορας
- έναν ή περισσότερους επιλογείς CSS, όπως π.χ. "# fooId"
, ".fooClassName"
, ".class1.class2"
, ή ".class1, .class2"
Παράδειγμα κώδικα
querySelectorAll ()
, και είναι μπλε χρώματος.
var παράγραφο = document.querySelectorAll ('p'); για (var p των παραγράφων) p.style.color = 'μπλε';
3.
addEventListener ()
foo ()
είναι μια προσαρμοσμένη λειτουργία, μπορείτε να την καταχωρήσετε ως ακροατής συμβάντος κλικ (ονομάστε το όταν πατάτε το κουμπί) με τρεις τρόπους:
var btn = document.querySelector ('κουμπί'); btn.onclick = foo;
var btn = document.querySelector ('κουμπί'); btn.addEventListener ('κλικ', foo);
addEventListener ()
(η τρίτη λύση) μερικά υπέρ. είναι το πιο πρόσφατο πρότυπο - επιτρέποντας την εκχώρηση περισσότερων από μία λειτουργιών ως ακροατών συμβάντων σε ένα συμβάν - και παρέχεται με ένα χρήσιμο σύνολο επιλογών.Σύνταξη
ele.addEventListener (evt, ακροατής, [επιλογές])?
εαυτών
- Το στοιχείο HTML που θα ακούει ο ακροατής του συμβάντος.evt
- Το στοχευόμενο συμβάν.ακροατής
- Συνήθως, μια συνάρτηση JavaScript.επιλογές
- (προαιρετικό) Ένα αντικείμενο με σύνολο ιδιοτήτων boolean (που αναφέρονται παρακάτω).Επιλογές Τι συμβαίνει, όταν έχει ρυθμιστεί αληθής
?πιάνω
ele.addEventListener (evt, ακροατής, αληθές)
ele.addEventListener (evt, ακροατής, σύλληψη: 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 να δημιουργηθεί, όπως 'Π'
ή 'div'
.AppendChild ()
(δείτε αργότερα σε αυτήν την ανάρτηση).Σύνταξη
document.createElement (tagName);
tagName
- Το όνομα της ετικέτας 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 (ισχυρό);
Διαδραστική επίδειξη
#ένα
προς το # r
είναι τα παιδικά στοιχεία του # parent-one
, # parent-two
, και # parent-three
id.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 = 'γεια'; div.replaceChild (em, ισχυρό);
9.
cloneNode ()
cloneNode ()
μέθοδος.Σύνταξη
var dupeEle = ele.cloneNode ([βαθιά])
dupeEle
- Αντίγραφο του εαυτών
στοιχείο.εαυτών
- Το στοιχείο HTML που πρόκειται να αντιγραφεί.βαθύς
- (προαιρετικό) Μια τιμή boolean. Αν έχει ρυθμιστεί αληθής
, dupeEle
θα έχει όλα τα παιδικά στοιχεία εαυτών
έχει, αν έχει ρυθμιστεί ψευδής
θα κλωνοποιηθεί χωρίς τα παιδιά του.Παράδειγμα κώδικα
στοιχείο με
cloneNode ()
, τότε το προσθέτουμε στο appendChild ()
μέθοδος. στοιχεία, και τα δύο με το
γεια σας
ως περιεχόμενο.
var strong = document.querySelector ('ισχυρό'); var αντίγραφο = strong.cloneNode (true); var div = document.querySelector ('div'); div.appendChild (αντίγραφο);
10.
insertBefore ()
insertBefore ()
μέθοδος προσθέτει ένα συγκεκριμένο παιδικό στοιχείο πριν από ένα άλλο παιδικό στοιχείο. Η μέθοδος ονομάζεται από το γονικό στοιχείο.μηδενικό
στη θέση του, προστίθεται το παιδικό στοιχείο που πρόκειται να εισαχθεί ως το τελευταίο παιδί του γονέα (παρόμοιο με appendChild ()
).Σύνταξη
ΕΛΛΗΝΙΚΑ
εαυτών
- Στοιχείο γονέα.newEle
- Δημιουργία νέου στοιχείου HTML.ΑΝΑΚΑΛΥΨΤΕ
- Ένα παιδικό στοιχείο του εαυτών
πριν από αυτό newEle
θα εισαχθεί.Παράδειγμα κώδικα
στοιχείο με κάποιο κείμενο μέσα και προσθέστε το πριν ο
στοιχείο μέσα στο
var em = document.createElement ('em'); var strong = document.querySelector ('ισχυρό'); var div = document.querySelector ('div'); em.textContent = 'γεια'; div.insertBefore (em, ισχυρό);
Διαδραστική επίδειξη
appendChild ()
μέθοδος. Εδώ χρειάζεται μόνο να πληκτρολογήσετε τους επιλογείς ταυτότητας δύο παιδικών στοιχείων (από το #ένα
προς το # r
) στα πλαίσια εισαγωγής και μπορείτε να δείτε πώς insertBefore ()
η μέθοδος μετακινεί το πρώτο καθορισμένο παιδί πριν το δεύτερο.11.
createDocumentFragment ()
createDocumentFragment ()
η μέθοδος μπορεί να μην είναι τόσο γνωστή όσο και οι άλλες σε αυτόν τον κατάλογο, ωστόσο είναι σημαντική, ειδικά αν θέλετε εισαγάγετε πολλαπλά στοιχεία χύμα, όπως η προσθήκη πολλών γραμμών σε έναν πίνακα.DocumentFragment
αντικείμενο, που ουσιαστικά είναι έναν κόμβο DOM που δεν ανήκει στο δέντρο DOM. Είναι σαν ένα buffer όπου μπορούμε πρώτα να προσθέσουμε και να αποθηκεύσουμε άλλα στοιχεία (πχ πολλαπλές σειρές), πριν τα προσθέσουμε στον επιθυμητό κόμβο στο δέντρο DOM (π.χ. σε έναν πίνακα).DocumentFragment
αντικείμενο δεν προκαλεί καμία αλλαγή διάταξης, ώστε να μπορείτε να προσθέσετε όσα στοιχεία θέλετε, πριν τα περάσετε στο δέντρο DOM, προκαλώντας μια αλλαγή διάταξης μόνο σε αυτό το σημείο.Σύνταξη
document.createDocumentFragment ()
Παράδειγμα κώδικα
createElement ()
μέθοδο, στη συνέχεια, προσθέστε τους σε ένα DocumentFragment
αντικείμενο, προσθέστε τελικά το κομμάτι του εγγράφου σε HTML χρησιμοποιώντας το
appendChild ()
μέθοδος.
var πίνακα = 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 στυλ = getComputedStyle (ele, [pseudoEle])
στυλ
- ΕΝΑ CSSStyleDeclaration
αντικείμενο που επιστρέφεται με τη μέθοδο. Υποστηρίζει όλες τις ιδιότητες του CSS και τις τιμές του εαυτών
στοιχείο.εαυτών
- Το στοιχείο HTML του οποίου λαμβάνονται οι τιμές ιδιότητας CSS.pseudoEle
- (προαιρετικό) Μια συμβολοσειρά που αντιπροσωπεύει ένα ψευδο-στοιχείο (για παράδειγμα, ':μετά'
). Αν αυτό αναφέρεται, τότε οι ιδιότητες CSS του συγκεκριμένου ψευδο-στοιχείου που σχετίζονται με εαυτών
θα επιστραφούν.Παράδειγμα κώδικα
πλάτος
αξία του α getComputedStyle ()
μέθοδος.
var στυλ = getComputedStyle (document.querySelector ('div')); ειδοποίηση (style.width);
13.
setAttribute ()
setAttribute ()
μέθοδο προσθέτει ένα νέο χαρακτηριστικό σε ένα στοιχείο HTML, ή ενημερώνει την τιμή ενός χαρακτηριστικού που υπάρχει ήδη.Σύνταξη
ele.setAttribute (όνομα, τιμή);
εαυτών
- Το στοιχείο HTML στο οποίο προστίθεται ένα χαρακτηριστικό ή το χαρακτηριστικό του οποίου είναι ενημερωμένο.όνομα
- Το όνομα του χαρακτηριστικού.αξία
- Η τιμή του χαρακτηριστικού.Παράδειγμα κώδικα
ικανοποιημένοι
αποδίδουν σε ένα setAttribute ()
μέθοδο, η οποία θα μετατρέψει το περιεχόμενό του επεξεργάσιμο. var div = document.querySelector ('div'); div.setAttribute ('contenteditable', ")
14.
getAttribute ()
getAttribute ()
μέθοδος επιστρέφει την τιμή ενός συγκεκριμένου χαρακτηριστικού που ανήκουν σε ένα συγκεκριμένο στοιχείο HTML.Σύνταξη
ele.getAttribute (όνομα);
εαυτών
- Το στοιχείο HTML του οποίου ζητείται το χαρακτηριστικό.όνομα
- Το όνομα του χαρακτηριστικού.Παράδειγμα κώδικα
ικανοποιημένοι
χαρακτηριστικό που ανήκει στο getAttribute ()
μέθοδος. var div = document.querySelector ('div'); alert (div.getAttribute ('contenteditable'))
15.
removeAttribute ()
removeAttribute ()
μέθοδος καταργεί ένα δεδομένο χαρακτηριστικό ενός συγκεκριμένου στοιχείου HTML.Σύνταξη
ele.removeAttribute (όνομα);
εαυτών
- Το στοιχείο HTML του οποίου το χαρακτηριστικό πρόκειται να αφαιρεθεί.όνομα
- Το όνομα του χαρακτηριστικού.Παράδειγμα κώδικα
ικανοποιημένοι
χαρακτηριστικό από το var div = document.querySelector ('div'); div.removeAttribute ('contenteditable');