JavaScript ו-HTML
מאמר זה מסביר על JavaScript ו-HTML.
YouTube Video
אובייקט window
ב-JavaScript
אובייקט window
ב-JavaScript הוא האובייקט הגלובלי בסביבה של דפדפן, והוא מספק פונקציות ומידע שקשורים לדף האינטרנט ולחלון הדפדפן. מאחר ש-window
הוא ההיקף הגלובלי של הדפדפן, כל קוד JavaScript שפועל בדפדפן הופך להיות חלק מאובייקט window
. אובייקט window
ממלא תפקיד חשוב בהרצת JavaScript בסביבת הדפדפן, והוא מספק APIs ומאפיינים רבים.
תכונות עיקריות של אובייקט window
מאפיינים
1// Get and display the document's title
2console.log(window.document.title);
3
4// Get and display the current URL
5console.log(window.location.href);
6
7// Go back to the previous page
8window.history.back();
9
10// Display the browser's user agent
11console.log(window.navigator.userAgent);
12
13// Display the width and height of the viewport
14console.log(`Width: ${window.innerWidth}, Height: ${window.innerHeight}`);
window.document
: גישה למסמך ה-HTML הנוכחי.window.location
: ניהול ה-URL הנוכחי וניווט בדפדפן.window.history
: גישה למידע היסטוריית הדפדפן ואפשרות ניווט קדימה ואחורה.window.navigator
: מספק מידע על הדפדפן והמכשיר.window.innerWidth
/window.innerHeight
: מאחזר את הרוחב והגובה של ה-viewport.
שיטות
1// Show an alert
2window.alert('Hello, this is an alert!');
3
4// Show a confirmation dialog
5if (window.confirm('Are you sure you want to proceed?')) {
6 console.log('User clicked OK');
7} else {
8 console.log('User clicked Cancel');
9}
10
11// Show a prompt dialog
12const userInput = window.prompt('Please enter your name:');
13console.log(`Hello, ${userInput}!`);
14
15// Open a new tab
16window.open('https://www.example.com', '_blank');
17
18// Display a message after 3 seconds
19window.setTimeout(() => {
20 console.log('This message appears after 3 seconds!');
21}, 3000);
22
23// Display a message every second
24const intervalId = window.setInterval(() => {
25 console.log('This message appears every second!');
26}, 1000);
27
28// Clear the interval after 5 seconds
29setTimeout(() => {
30 clearInterval(intervalId);
31 console.log('Interval cleared.');
32}, 5000);
window.alert()
: מציג תיבת הודעה.window.confirm()
: מציג תיבת הודעה לבקשת אישור המשתמש ומחזיר תוצאה של אישור או ביטול.window.prompt()
: מציג תיבת הודעה לבקשת קלט מהמשתמש ומחזיר את הערך שהוזן.window.open()
: פותח חלון או טאבים חדשים.window.setTimeout()
/window.setInterval()
: קובע טיימר לביצוע פונקציה אחרי זמן מסוים או במרווחים קבועים.
ניהול אירועים
1// Display a message when the page is fully loaded
2window.onload = () => {
3 console.log('Page is fully loaded!');
4};
5
6// Display a message when the window is resized
7window.onresize = () => {
8 console.log('Window resized! New size:', window.innerWidth, 'x', window.innerHeight);
9};
10
11// Display a message when the page is being scrolled
12window.onscroll = () => {
13 console.log('Page is being scrolled!');
14};
window.onload
: אירוע שמופעל כאשר הדף נטען במלואו.window.onresize
: אירוע שמופעל כאשר גודל החלון משתנה.window.onscroll
: אירוע שמופעל כאשר המשתמש גולל את הדף.
תפקיד במשתנה גלובלי
1var myVar = 10;
2console.log(window.myVar); // 10
- האובייקט
window
מחזיק משתנים ופונקציות גלובליים. במילים אחרות, משתנים ופונקציות שמוצהרים הופכים אוטומטית למאפיינים שלwindow
.
מניפולציה של DOM בג'אווה סקריפט
מניפולציה של DOM (מודל אובייקט המסמך) בג'אווה סקריפט משמשת לאינטראקציה דינמית עם אלמנטים בדף האינטרנט. ה-DOM מציג את מבנה מסמך ה-HTML כעץ, שניתן לשנות באמצעות ג'אווה סקריפט כדי לעדכן את המבנה ולשלוט בתצוגת הדף.
יסודות ה-DOM
ה-DOM מתייחס ל-HTML של דף אינטרנט כאובייקטים, ומאפשר גישה ושינוי של אלמנטים ותכונות. השתמש באובייקט document
כדי לגשת אל מסמך ה-HTML.
1<!DOCTYPE html>
2<html>
3 <head>
4 <title>Example of DOM Manipulation</title>
5 </head>
6 <body>
7 <div id="content">Hello, World!</div>
8 <button id="changeText">Change Text</button>
9 </body>
10</html>
שליפת אלמנטים מה-DOM
לג'אווה סקריפט יש מספר שיטות לגישה לאלמנטים ב-DOM.
document.getElementById()
: אחזר אלמנט לפי תכונתid
document.getElementsByClassName()
: אחזר אלמנטים לפי שם מחלקה (HTMLCollection)document.getElementsByTagName()
: אחזר אלמנטים לפי שם תגית (HTMLCollection)document.querySelector()
: אחזר את האלמנט הראשון שתואם באמצעות בורר CSSdocument.querySelectorAll()
: אחזר את כל האלמנטים התואמים באמצעות בורר CSS (NodeList)
דוגמה: getElementById
ו-querySelector
1const content = document.getElementById('content');
2console.log(content.textContent); // "Hello, World!"
3
4const button = document.querySelector('#changeText');
מניפולציה על ה-DOM
ניתן לבצע פעולות שונות על האלמנטים שנשלפו.
שינוי טקסט
כדי לשנות את הטקסט של אלמנט, השתמש ב-textContent
או innerHTML
.
textContent
: אחזר או שנה את תוכן הטקסט של אלמנט. תגיות HTML אינן מפורשות.innerHTML
: אחזר או שנה את תוכן ה-HTML של אלמנט. מחרוזות המכילות תגיות HTML מעובדות גם כן.
1content.textContent = 'Hello, world!'; // Change the text
2button.innerHTML = '<strong>Click to change</strong>'; // Change including HTML
שינוי תכונות
השתמש ב-setAttribute()
ו-getAttribute()
כדי לשנות תכונות של אלמנט.
1button.setAttribute('disabled', 'true'); // Disable the button
2const id = content.getAttribute('id'); // Get the "content"
שינוי CSS
השתמש במאפיין style
כדי לשנות סגנונות CSS.
1content.style.color = 'red'; // Change the text color to red
2content.style.fontSize = '20px'; // Change the font size
ניהול מחלקות
השתמש ב-classList
כדי להוסיף או להסיר מחלקות מאלמנט.
add()
: הוסף מחלקהremove()
: הסר מחלקהtoggle()
: הוסף או הסר מחלקה בהתאם לקיומהcontains()
: בדוק אם מחלקה קיימת
1content.classList.add('highlight'); // Add a class
2button.classList.toggle('active'); // Toggle a class
יצירה ומחיקה של אלמנטים ב-DOM
יצירת אלמנטים חדשים
השתמש ב-document.createElement()
כדי ליצור אלמנט חדש ולהוסיף אותו ל-DOM.
1const newDiv = document.createElement('div'); // Create a new div element
2newDiv.textContent = 'This is a new element';
3document.body.appendChild(newDiv); // Append to the body element
מחיקת פריטים
השתמש בשיטת remove()
כדי למחוק אלמנט.
1newDiv.remove(); // Remove the created element
הוספת אירועים
כחלק ממניפולציות ב-DOM, ניתן להוסיף מטפלי אירועים שמגיבים לאינטראקציות משתמש. השתמש ב-addEventListener()
כדי לטפל באירועים כמו לחיצות ואינטראקציות במקלדת.
1button.addEventListener('click', () => {
2 content.textContent = 'The text has been changed';
3});
בדוגמה זו, לחיצה על כפתור משנה את הטקסט של האלמנט #content
.
ניווט בעץ ה-DOM
ניתן לנווט ב-DOM כדי לגשת לאלמנטים הורה ואחים.
parentNode
: גישה לצומת ההורהchildNodes
: גישה לצמתים ילד (מכל הסוגים)firstChild
/lastChild
: אלמנט הילד הראשון/האחרוןnextSibling
/previousSibling
: אלמנט האח הבא/האח הקודם
1const parent = content.parentNode; // Get the parent element
2const firstChild = parent.firstChild; // Get the first child element
3console.log(firstChild);
דוגמה: הוספת פריט חדש לרשימה
להלן דוגמה להוספת פריט חדש לרשימה.
1<ul id="list">
2 <li>Item 1</li>
3 <li>Item 2</li>
4</ul>
5<button id="addItem">Add Item</button>
6
7<script>
8 const list = document.getElementById('list');
9 const addItemButton = document.getElementById('addItem');
10
11 addItemButton.addEventListener('click', () => {
12 const newItem = document.createElement('li');
13 newItem.textContent = 'New Item';
14 list.appendChild(newItem);
15 });
16</script>
בקוד הזה, לחיצה על כפתור "הוסף פריט" מוסיפה אלמנט <li>
חדש לרשימה.
סיכום
- מניפולציה של DOM ב-JavaScript מאפשרת לכם לקבל, לשנות, ליצור ולמחוק אלמנטים בתוך מסמך HTML.
- ניתן לקבל אלמנטים באמצעות שיטות כמו
getElementById()
ו-querySelector()
. - השתמשו ב-
textContent
אוinnerHTML
לשינוי טקסט ו-HTML, וב-setAttribute()
למניפולציה של מאפיינים. - השתמשו ב-
createElement()
כדי ליצור אלמנטים חדשים וב-remove()
כדי למחוק אותם. - ניתן ליצור דפי אינטרנט אינטראקטיביים שמגיבים לפעולות משתמש באמצעות טיפול באירועים.
תוכלו לעקוב אחר המאמר שלמעלה באמצעות Visual Studio Code בערוץ היוטיוב שלנו. נא לבדוק גם את ערוץ היוטיוב.