שיטות JavaScript עבור מניפולציה DOM עבור מפתחי אינטרנט
כמפתח אינטרנט, לעתים קרובות אתה צריך לתפעל את DOM, מודל האובייקט המשמש את הדפדפנים ל ציין את המבנה הלוגי של דפי אינטרנט, ועל בסיס זה מבנה להפוך רכיבי HTML על המסך.
HTML מגדיר את מבנה ברירת המחדל של DOM. עם זאת במקרים רבים ייתכן שתרצה לתפעל את זה עם JavaScript, בדרך כלל על מנת להוסיף פונקציות נוספות לאתר.
בהודעה זו, תמצא רשימה של 15 שיטות בסיסיות של כי סיוע DOM מניפולציה. סביר להניח שאתה משתמש בשיטות אלה לעתים קרובות בקוד שלך, ואתה גם להיתקל בהם ב- JavaScript שלנו Tutorials.
1. querySelector ()
ה querySelector ()
שיטה מחזירה את האלמנט הראשון התואם בורר CSS אחד או יותר. אם לא נמצאה התאמה, היא תחזור ריק
.
לפני querySelector ()
היה הציג, מפתחים בשימוש נרחב getElementById ()
אשר אשר מביא אלמנט עם שצוין id
ערך.
למרות ש getElementById ()
היא עדיין שיטה שימושית, אבל עם החדש querySelector ()
ו querySelectorAll ()
שיטות אנו חופשיים אלמנטים היעד מבוסס על כל בורר CSS, ולכן יש לנו גמישות רבה יותר.
תחביר
var ele = document.querySelector (בורר);
ele
- רכיב ההתאמה הראשון אוריק
(אם אף רכיב אינו תואם לסלקטורים)28
- בורר CSS אחד או יותר, כגון"#fooId"
,".fooClassName"
,".class1.class2"
, או".class1, .class2"
דוגמה קוד
בדוגמה זו, הראשונה פסקה 1 פסקה 2 פסקה שלוש בדוק את בניגוד האלמנטים התואמים מוחזרים כ- a הדוגמה שבהמשך משתמשת באותה HTML כמו הקודמת. עם זאת, בדוגמה זו, כל הסעיפים נבחרים עם פסקה 1 פסקה 2 פסקה שלוש אירועים עיין במה שקורה לאלמנט HTML, כגון לחיצה, מיקוד או טעינה, שאליהם אנו יכולים להגיב עם JavaScript. אנחנו יכולים להקצות פונקציות JS ל להקשיב עבור אירועים אלה באלמנטים ולעשות משהו כאשר האירוע התרחש. ישנן שלוש דרכים שאתה יכול להקצות פונקציה לאירוע מסוים. אם השיטה עצירת האירוע מבעבעת, כלומר מונעת קריאה של מאזיני אירוע עבור אותו סוג אירוע באבות של האלמנט. כדי להשתמש בתכונה זו, ניתן להשתמש בשני תחביר: המאזין נקרא רק בפעם הראשונה שהאירוע מתרחש, ואז הוא מנותק באופן אוטומטי מהאירוע, ולא יופעל על ידו עוד. לא ניתן לעצור את פעולת ברירת המחדל של האירוע בשיטת מניע (). בדוגמה זו, אנו מוסיפים מאזין לאירועי קליקים הקצה את ה משתמש באותה תחביר כמו הנ"ל בעקבות קוד דוגמה השתמשנו ב ה לאחר מכן תוכל להוסיף רכיב זה לדף האינטרנט על ידי שימוש אחר שיטות להכנסת DOM, כמו בדוגמה הבאה, ניתן ליצור אלמנט פסקה חדש: ה הילד להיות מוכנס יכול להיות או רכיב שנוצר לאחרונה, או כבר קיים. במקרה האחרון, הוא יועבר מעמדתו הקודמת למיקום הילד האחרון. בדוגמה זו, אנו מכניסים בהדגמה אינטראקטיבית הבאה, מכתבים מ בדוק כיצד ה בדוגמה זו, אנו מסירים את ה בדוגמה זו אלמנט הילד כאשר אתה צריך ליצור אלמנט חדש זה צריך להיות כמו אלמנט קיים כבר בדף האינטרנט, אתה יכול פשוט ליצור עותק של הרכיב שכבר קיים משתמש ב בדוגמה זו, אנו יוצרים עותק עבור כתוצאה, ה אם אלמנט הילד המפנה אינו קיים או שאתה עובר במפורש בדוגמה זו, אנו יוצרים חדש הדגמה אינטראקטיבית זו פועלת באופן דומה להופעה הקודמת שלנו השייכת ה זה יוצר למה אנחנו לא רק להוסיף אלמנטים ישירות לעץ DOM? בגלל הכנסת DOM גורם לשינויי פריסה, וזה תהליך דפדפן יקר מאחר שהכנסת אלמנטים מרובים תגרום לשינויים נוספים בפריסה. מצד שני, הוספת אלמנטים בדוגמה זו, אנו יוצרים שורות טבלה מרובות ותאים עם כתוצאה מכך, חמש שורות - כל אחת מהן המכילה תא אחד עם מספר 1 עד 5 כתוכן - יוכנסו לתוך הטבלה. לפעמים אתה רוצה לבדוק את ערכי המאפיינים CSS של אלמנט לפני ביצוע שינויים. אתה יכול להשתמש בדוגמה זו, אנו מקבלים ומזהירים את המחושבת ה בדוגמה זו, אנו מוסיפים את ה בדוגמה זו, אנו מתריעים על הערך של ה בדוגמה זו, אנו מסירים את querySelector ()
השיטה והצבע שלה משתנה לאדום.
var firstDiv = document.querySelector ('div'); firstDiv.style.color = 'red';
הדגמה אינטראקטיבית
querySelector ()
שיטה בהדגמה אינטראקטיבית הבאה. כל שעליך לעשות הוא להקליד בורר התואם את אלה שתוכל למצוא בתוך תיבות הכח הכחולות (למשל. #three
), ולחץ על הלחצן 'בחר'. שים לב שאם אתה מקליד .בלוק
, רק במקרה הראשון שלה ייבחרו.2.
querySelectorAll ()
querySelector ()
המחזירה רק את המופע הראשון של כל האלמנטים התואמים, querySelectorAll ()
מחזירה את כל האלמנטים התואמים את בורר CSS שצוין.NodeList
אובייקט שיהיה אובייקט ריק אם לא נמצאו רכיבים תואמים.תחביר
var eles = document.querySelectorAll (סלקטור);
eles
- א NodeList
אובייקט עם כל האלמנטים התואמים כערכי מאפיינים. האובייקט ריק אם לא נמצאו התאמות.28
- בורר CSS אחד או יותר, כגון "#fooId"
, ".fooClassName"
, ".class1.class2"
, או ".class1, .class2"
דוגמה קוד
querySelectorAll ()
, והם בצבע כחול.
var paragraph = document.querySelectorAll ('p'); עבור (var p של פסקאות) p.style.color = 'כחול';
3.
addEventListener ()
foo ()
היא פונקציה מותאמת אישית, אתה יכול לרשום את זה כמו מאזין אירוע לחץ (התקשר אליו כאשר לוחצים על הלחצן) בשלוש דרכים:
var btn = document.querySelector ('לחצן'); btn.onclick = foo;
var btn = document.querySelector ('לחצן'); btn.addEventListener ('click', foo);
addEventListener ()
(הפתרון השלישי) יש כמה יתרונות; זה הסטנדרט האחרון - המאפשר הקצאה של יותר מפונקציה אחת כמו מאזיני האירוע לאירוע אחד - ומגיע עם קבוצה שימושית של אפשרויות.תחביר
ele.addEventListener (evt, מאזין, [אפשרויות]);
ele
- רכיב HTML המאזין האירוע יהיה להקשיב.Evt
- האירוע הממוקד.מאזינה
- בדרך כלל, פונקציית JavaScript.אפשרויות
- (אופציונלי) אובייקט עם קבוצה של תכונות בוליאניות (המפורטות להלן).אפשרויות מה קורה, מתי זה מוגדר נכון
?ללכוד
ele.addEventListener (evt, מאזין, נכון)
ele.addEventListener (evt, מאזין, ללכוד: נכון);
פעם אחת
פסיבי
דוגמה קוד
foo
, אל ה תג HTML.
var btn = document.querySelector ('לחצן'); btn.addEventListener ('click', foo); function foo () Alert ('hello');
הדגמה אינטראקטיבית
foo ()
פונקציה מותאמת אישית כמאזין אירועים לכל אחד משלושת האירועים הבאים: קלט
, לחץ על
או עכבר
הפעל את האירוע שנבחר בשדה הקלט התחתון על ידי ריחוף, לחיצה עליו או הקלדתו.4.
removeEventListener ()
removeEventListener ()
שיטה מנתק מאזין לאירועים נוסף בעבר עם addEventListener ()
שיטה מהאירוע הוא מקשיב.תחביר
ele.removeEventListener (evt, listener, [options]);
addEventListener ()
שיטה (למעט פעם אחת
אפשרות שאינה נכללת). האפשרויות משמשות להיות ספציפיות מאוד על זיהוי המאזין להיות מנותק.דוגמה קוד
addEventListener ()
, כאן אנו מסירים את המאזין האירוע לחץ נקרא foo
מ ה אלמנט.
btn.removeEventListener ('click', foo);
5.
createElement ()
createElement ()
שיטה יוצר אלמנט HTML חדש משתמש ב שם תג ה- HTML כדי ליצור, כגון 'p'
או 'div'
.AppendChild ()
(ראה בהמשך מאמר זה).תחביר
document.createElement (tagName);
תג שם
- השם של תג ה- HTML שברצונך ליצור. דוגמה קוד
var pEle = document.createElement ('p')
6.
appendChild ()
appendChild ()
שיטה מוסיף אלמנט כילד האחרון אל אלמנט HTML שמעורר שיטה זו.תחביר
ele.appendChild (childEle)
ele
- אלמנט HTML שאליו ילד
נוסף כילד האחרון.ילד
- אלמנט HTML נוסף כילד האחרון של ele
.דוגמה קוד
אלמנט הוא כילד של
appendChild ()
ואת האמור לעיל createElement ()
שיטות.
var div = document.querySelector ('div'); var strong = document.createElement ('חזק'); strong.textContent = 'Hello'; div.appendChild (חזק);
הדגמה אינטראקטיבית
#a
ל #r
הם היסודות של הילד # אב-אחד
, # אב-שניים
, ו # אב לשלושה
סמני זיהוי.appendChild ()
השיטה פועלת הקלדת שם אב אחד ושם אחד של בוחר ילדים לשדות הקלט הבאים. אתה יכול לבחור ילדים השייכים להורה אחר גם כן.7.
removeChild ()
removeChild ()
שיטה מסיר רכיב ילד שצוין מ אלמנט HTML זה קורא שיטה זו.תחביר
ele.removeChild (childEle)
ele
- אלמנט ההורה של ילד
.ילד
- אלמנט הילד של ele
.דוגמה קוד
אלמנט הוספנו כילד ל
appendChild ()
שיטה. div.removeChild (חזק);
8.
החלףילד ()
החלףילד ()
שיטה מחליף אלמנט ילד עם עוד אחד השייכים לאלמנט ההורה הקורא לשיטה זו.תחביר
ele.replaceChild (newChildEle, oldChileEle)
ele
- אלמנט ההורה שבו ילדים יוחלפו.newChildEle
- יסוד הילד של ele
זה יחליף ישן
.ישן
- יסוד הילד של ele
, אשר יוחלף על ידי newChildEle
.דוגמה קוד
השייכות ל
תג.
var em = document.createElement ('em'); var strong = document.querySelector ('חזק'); var div = document.querySelector ('div'); em.textContent = 'hi'; div.replaceChild (em, חזקה);
9.
cloneNode ()
cloneNode ()
שיטה.תחביר
dupeEEle = ele.cloneNode ([עמוק])
dupeEle
- העתק של ele
אלמנט.ele
- אלמנט HTML להעתקה.עמוק
- (אופציונלי) ערך בוליאני. אם זה מוגדר נכון
, dupeEle
יהיה כל האלמנטים הילד ele
יש, אם זה מוגדר שקר
זה יהיה משובט ללא ילדיו.דוגמה קוד
רכיב
cloneNode ()
, אז אנחנו מוסיפים אותו appendChild ()
שיטה. אלמנטים, הן עם
שלום
תוכן כמו מחרוזת.
var strong = document.querySelector ('חזק'); var copy = strong.cloneNode (נכון); var div = document.querySelector ('div'); div.appendChild (עותק);
10.
insertBefore ()
insertBefore ()
שיטה מוסיף אלמנט ילד שצוין לפני אלמנט ילד אחר. השיטה נקראת על ידי אלמנט ההורה.ריק
במקומו, מוסיפים את מרכיב הילד כמו הילד האחרון של ההורה (דומה ל appendChild ()
).תחביר
ele.insertBefore (newEle, refEle);
ele
- אלמנט ההורה.חדש
- אלמנט HTML חדש שיוכנס.reflele
- אלמנט של ילד ele
לפני כן חדש
יוכנסו.דוגמה קוד
אלמנט עם קצת טקסט בפנים, ולהוסיף אותו לפני ה
רכיב בתוך
var em = document.createElement ('em'); var strong = document.querySelector ('חזק'); var div = document.querySelector ('div'); em.textContent = 'hi'; div.insert לפני כן (חזק, חזק);
הדגמה אינטראקטיבית
appendChild ()
שיטה. כאן עליך רק להקליד את בוררי הזיהוי של שני רכיבי צאצא (מתוך #a
ל #r
) לתוך תיבות קלט, ואתה יכול לראות איך insertBefore ()
השיטה מעבירה את הילד שצוין לראשונה לפני השני.11.
CreateDocumentFragment ()
CreateDocumentFragment ()
השיטה עשויה לא להיות ידועה כמו אחרים ברשימה זו, בכל זאת הוא אחד חשוב, במיוחד אם אתה רוצה הוסף רכיבים מרובים בכמות גדולה, כגון הוספת שורות מרובות לטבלה.מסמך
אובייקט, אשר למעשה הוא צומת DOM שאינו חלק מעץ DOM. זה כמו מאגר שבו נוכל להוסיף ולאחסן רכיבים אחרים (למשל, שורות מרובות), לפני הוספתם לצומת הרצוי בעץ DOM (למשל לטבלה).מסמך
אובייקט אינו גורם לשינויים בפריסה, כך שתוכל להוסיף אלמנטים רבים כמו שאתה רוצה לפני שעבר אותם לעץ DOM, גרימת שינוי הפריסה רק בשלב זה.תחביר
document.createDocumentFragment ()
דוגמה קוד
createElement ()
ולאחר מכן להוסיף אותם מסמך
אובייקט, סוף סוף להוסיף את קטע המסמך ל- 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.
ים Items- J
ele.style
רכוש לעשות את אותו הדבר, עם זאת ים Items- J
השיטה נעשתה רק למטרה זו, זה מחזירה את הערכים המחושבים לקריאה בלבד של כל תכונות CSS של אלמנט HTML שצוין.תחביר
var style = getComputedStyle (ele, [pseudoEle])
בסגנון
- א CSSStyleDeclaration
אובייקט המוחזר על ידי השיטה. הוא מכיל את כל המאפיינים CSS ואת הערכים של ele
אלמנט.ele
- אלמנט HTML של ערכי המאפיינים של CSS.פסאודו
- (אופציונלי) מחרוזת המייצגת אלמנט פסאודו (לדוגמה, ':לאחר'
). אם זה מוזכר, אז המאפיינים CSS של אלמנט pseudo שצוין הקשורים ele
יוחזר.דוגמה קוד
רוחב
ערך של ים Items- J
שיטה.
var style = getComputedStyle (document.querySelector ('div')); התראה (style.width);
13.
setAttribute ()
setAttribute ()
השיטה או מוסיף תכונה חדשה אל אלמנט HTML, או מעדכן את הערך של תכונה שכבר קיימת.תחביר
ele.setAttribute (שם, ערך);
ele
- אלמנט HTML שאליו מתווספת תכונה, או איזה מאפיין עודכן.שם
- שם התכונה.ערך
- הערך של התכונה.דוגמה קוד
contenteditable
תכונה a setAttribute ()
שיטה, אשר יהפוך את התוכן שלה לעריכה. var div = document.querySelector ('div'); div.setAttribute ('contenteditable',))
14.
getAttribute ()
getAttribute ()
שיטה מחזירה את הערך של מאפיין שצוין השייכים לאלמנט HTML מסוים.תחביר
ele.getAttribute (שם);
ele
- רכיב HTML של המאפיין המבוקש.שם
- שם התכונה.דוגמה קוד
contenteditable
תכונה שייך getAttribute ()
שיטה. var div = document.querySelector ('div'); התראה (div.getAttribute ('contentedable'))
15.
RemoveAttribute ()
RemoveAttribute ()
שיטה מסיר תכונה נתונה של אלמנט HTML ספציפי.תחביר
ele.removeAttribute (שם);
ele
- רכיב HTML של תכונה אשר יוסר.שם
- שם התכונה.דוגמה קוד
contenteditable
תכונה מתוך var div = document.querySelector ('div'); div.removeAttribute ('contenteditable');