דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. איך לסמן מילים מסוימות בדף html ?

איך לסמן מילים מסוימות בדף html ?

מתוזמן נעוץ נעול הועבר תכנות
3 פוסטים 2 כותבים 204 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • ב מנותק
    ב מנותק
    ב.ל
    כתב ב נערך לאחרונה על ידי ב.ל
    #1

    יש לי רשימת מילים שאני רוצה להדגיש בדף html
    אני מחפש איך הדרך הכי קלה בj.s לחפש את אותם מילים ולעטוף אותם בspan עם class כדי להדגיש את אותם מילים
    המילים יכולים להיות מפוזרים בכל הדף ובתוך סוגי אלמנטים שונים.

    כתבתי בצורה דלהלן אך עדיין לפעמים שובר את הדף וגם עובד באופן איטי (ובמיוחד שעובר שוב על אלמנטים מקוננים)

     const wordsList = ['מילה1','מילה2','מילה3']
      const elements = document.body.querySelectorAll('*:not(script)');
      for (const element of elements) {
        for (const word of wordsList) {
          element.innerHTML = element.innerHTML.replaceAll(word, `<span class="mark">${word}</span>`);
        }
      }
    

    ליצירת קשר - baruchlamdan@gmail.com

    yossizY תגובה 1 תגובה אחרונה
    1
    • yossizY מנותק
      yossizY מנותק
      yossiz
      השיב לב.ל ב נערך לאחרונה על ידי yossiz
      #2

      @ב-ל
      https://stackoverflow.com/a/34614703/8997905
      (בקצרה: הוא טוען שזו מסוג הבעיות הלא טריוויאליות שעדיף להשתמש בספרייה אם אתה לא בקטע של להשקיע יותר מדי מאמצים להגיע לפתרון נכון, הספרייה שהוא מציע: https://markjs.io)

      📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

      תגובה 1 תגובה אחרונה
      3
      • yossizY מנותק
        yossizY מנותק
        yossiz
        כתב ב נערך לאחרונה על ידי yossiz
        #3

        אני לא משוכנע שהתשובה הנ"ל נכונה.
        אולי עדיף לגנוב/לכתוב מימוש פשוט ולהטמיע בקוד שלך במקום לייבא ספרייה יחסית גדולה.
        ניסיתי להבין מה לא טוב בקוד שלך ולנסות לתקן את זה.
        בקוד שלך יש כמה בעיות להבנתי:
        א) אתה עושה את ההחלפה על אלמנטיים חיצוניים ושוב חוזר על זה על אלמנטים פנימיים שזה מיותר
        ב) ברגע שאתה מחליף את ה-innerHTML של האלמנט הכי חיצוני, אז כל שאר האלמנטים ברשימה כבר לא מחוברים ל-DOM. אז זה מיותר++
        ג) החלפה על ידי innerHTML מייצר מחדש את ה-DOM, זה מבטל האזנות לאירועים וכדומה. ברור שזה ישבור את האינטראקטיביות של הדף.
        איך אפשר לפתור את זה?
        במקום להחליף את כל ה-innerHTML של כל הדף, שזה בעצם בונה מחדש את הדף, נשתמש בפונצקיה שחותכת חור מיזערי ב-DOM בניתוח מדוייק ונשתיל לשם את ה-span שלנו.
        שלב א:
        נעבור על ה-DOM ונמצא את ה-textNode שכוללת את מילת המפתח שלנו
        שלב ב:
        נשתמש ב-API זה כדי לחלק את ה-node ל-3 חלקים. 1) עד המילה 2) המילה 3) אחרי המילה
        שלב ג:
        נוציא את חלק מס' 2 הנ"ל ונחליף אותו ב-span שמכיל את המילה.

        (רציתי לכתוב קוד שמממש את זה אבל התייאשתי לבינתיים)

        📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

        תגובה 1 תגובה אחרונה
        4
        • dovidD dovid העביר נושא זה מ-תכנות ב-

        בא תתחבר לדף היומי!
        • התחברות

        • אין לך חשבון עדיין? הרשמה

        • התחברו או הירשמו כדי לחפש.
        • פוסט ראשון
          פוסט אחרון
        0
        • דף הבית
        • קטגוריות
        • פוסטים אחרונים
        • משתמשים
        • חיפוש
        • חוקי הפורום