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

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

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

שאלה ב JS מוטמעת ב HTML

מתוזמן נעוץ נעול הועבר תכנות
12 פוסטים 4 כותבים 395 צפיות 3 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • dovidD מחובר
    dovidD מחובר
    dovid
    ניהול
    כתב ב נערך לאחרונה על ידי dovid
    #3

    @yossiz אמר בשאלה ב JS מוטמעת ב HTML:

    myTable7

    הקוד של @yossiz בנוי באופן שרוצים לספור גם כמה תוצאות בתוך אותה שורה (למרות שבקוד שהוצג לא נעשה שימוש בספירה הזו),
    וממילא הוא חייב לעבור על כל העמודות (אוי ואבוי 🙂 ).
    אם זה לא חשוב יש לצאת מהלולאה הפנימית במקרה של מציאה ע"י brake.
    כמו"כ לא הבנתי למה השתמשו בtextContent, למה לא רק בinnerText שיותר מתאים למטרה פה.
    שכתבתי את הקוד לספירת שורות בלבד, וגם קצת שיניתי אותו לטעמי:

     Search("myTable7", "myInput");
    
    function Search(tableId, inputId) {
        var input = document.getElementById(tableId);
        var table = document.getElementById(inputId);
    
        var filter = input.value.toUpperCase();
    
        var checkOneRow = function (tr) {
            var td = tr.getElementsByTagName("td");
    
            for (let j = 0; i < td.length; j++)
                if (td[j].innerText.toUpperCase().indexOf(filter) > -1)
                    return true;
        }
    
        var cnt = 0;
        var tr = table.getElementsByTagName("tr");
        for (i = 0; i < tr.length; i++) {
            if (checkOneRow(tr[i])) {
                cnt++;
                tr[i].style.display = "";
            } else {
                tr[i].style.display = "none";
            }
        }
    }
    
    • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
    • בכל נושא אפשר ליצור קשר dovid@tchumim.com
    א yossizY 2 תגובות תגובה אחרונה
    3
    • dovidD dovid

      @yossiz אמר בשאלה ב JS מוטמעת ב HTML:

      myTable7

      הקוד של @yossiz בנוי באופן שרוצים לספור גם כמה תוצאות בתוך אותה שורה (למרות שבקוד שהוצג לא נעשה שימוש בספירה הזו),
      וממילא הוא חייב לעבור על כל העמודות (אוי ואבוי 🙂 ).
      אם זה לא חשוב יש לצאת מהלולאה הפנימית במקרה של מציאה ע"י brake.
      כמו"כ לא הבנתי למה השתמשו בtextContent, למה לא רק בinnerText שיותר מתאים למטרה פה.
      שכתבתי את הקוד לספירת שורות בלבד, וגם קצת שיניתי אותו לטעמי:

       Search("myTable7", "myInput");
      
      function Search(tableId, inputId) {
          var input = document.getElementById(tableId);
          var table = document.getElementById(inputId);
      
          var filter = input.value.toUpperCase();
      
          var checkOneRow = function (tr) {
              var td = tr.getElementsByTagName("td");
      
              for (let j = 0; i < td.length; j++)
                  if (td[j].innerText.toUpperCase().indexOf(filter) > -1)
                      return true;
          }
      
          var cnt = 0;
          var tr = table.getElementsByTagName("tr");
          for (i = 0; i < tr.length; i++) {
              if (checkOneRow(tr[i])) {
                  cnt++;
                  tr[i].style.display = "";
              } else {
                  tr[i].style.display = "none";
              }
          }
      }
      
      א מנותק
      א מנותק
      אהרן
      כתב ב נערך לאחרונה על ידי
      #4

      @dovid אמר בשאלה ב JS מוטמעת ב HTML:

      var td = tr[i].getElementsByTagName("td");

      מה i מכיל?

      dovidD תגובה 1 תגובה אחרונה
      1
      • א אהרן

        @dovid אמר בשאלה ב JS מוטמעת ב HTML:

        var td = tr[i].getElementsByTagName("td");

        מה i מכיל?

        dovidD מחובר
        dovidD מחובר
        dovid
        ניהול
        כתב ב נערך לאחרונה על ידי
        #5

        @אהרן צודק תיקנתי.

        • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
        • בכל נושא אפשר ליצור קשר dovid@tchumim.com
        א תגובה 1 תגובה אחרונה
        1
        • dovidD dovid

          @אהרן צודק תיקנתי.

          א מנותק
          א מנותק
          אהרן
          כתב ב נערך לאחרונה על ידי
          #6

          @dovid
          אפשר גם

              var checkOneRow = (tr) => {
                  return [ ...tr.getElementsByTagName("td") ]
                          .filter(curTd => curTd.innerText.toUpperCase().indexOf(filter) > -1)
                          .length
              }
          
          dovidD תגובה 1 תגובה אחרונה
          0
          • א אהרן

            @dovid
            אפשר גם

                var checkOneRow = (tr) => {
                    return [ ...tr.getElementsByTagName("td") ]
                            .filter(curTd => curTd.innerText.toUpperCase().indexOf(filter) > -1)
                            .length
                }
            
            dovidD מחובר
            dovidD מחובר
            dovid
            ניהול
            כתב ב נערך לאחרונה על ידי dovid
            #7

            @אהרן אפשר הרבה יותר מזה (find וגם includes שניהם חוסכים גם ביצועים) אבל זה נראה שהלכו פה עם ES5 ומטה.
            כמו"כ כתבתי שהקוד שלי בא לחסוך מעבר מיותר על כל הtd, ואיבדת את זה.

            • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
            • בכל נושא אפשר ליצור קשר dovid@tchumim.com
            א תגובה 1 תגובה אחרונה
            1
            • dovidD dovid

              @yossiz אמר בשאלה ב JS מוטמעת ב HTML:

              myTable7

              הקוד של @yossiz בנוי באופן שרוצים לספור גם כמה תוצאות בתוך אותה שורה (למרות שבקוד שהוצג לא נעשה שימוש בספירה הזו),
              וממילא הוא חייב לעבור על כל העמודות (אוי ואבוי 🙂 ).
              אם זה לא חשוב יש לצאת מהלולאה הפנימית במקרה של מציאה ע"י brake.
              כמו"כ לא הבנתי למה השתמשו בtextContent, למה לא רק בinnerText שיותר מתאים למטרה פה.
              שכתבתי את הקוד לספירת שורות בלבד, וגם קצת שיניתי אותו לטעמי:

               Search("myTable7", "myInput");
              
              function Search(tableId, inputId) {
                  var input = document.getElementById(tableId);
                  var table = document.getElementById(inputId);
              
                  var filter = input.value.toUpperCase();
              
                  var checkOneRow = function (tr) {
                      var td = tr.getElementsByTagName("td");
              
                      for (let j = 0; i < td.length; j++)
                          if (td[j].innerText.toUpperCase().indexOf(filter) > -1)
                              return true;
                  }
              
                  var cnt = 0;
                  var tr = table.getElementsByTagName("tr");
                  for (i = 0; i < tr.length; i++) {
                      if (checkOneRow(tr[i])) {
                          cnt++;
                          tr[i].style.display = "";
                      } else {
                          tr[i].style.display = "none";
                      }
                  }
              }
              
              yossizY מחובר
              yossizY מחובר
              yossiz
              כתב ב נערך לאחרונה על ידי
              #8

              @dovid אמר בשאלה ב JS מוטמעת ב HTML:

              הקוד של @yossiz בנוי באופן שרוצים לספור גם כמה תוצאות בתוך אותה שורה (למרות שבקוד שהוצג לא נעשה שימוש בספירה הזו),

              נכון, שמתי לב לכל זה. רציתי לעשות כמה שפחות שינויים למבנה הקוד.

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

              dovidD תגובה 1 תגובה אחרונה
              2
              • dovidD dovid

                @אהרן אפשר הרבה יותר מזה (find וגם includes שניהם חוסכים גם ביצועים) אבל זה נראה שהלכו פה עם ES5 ומטה.
                כמו"כ כתבתי שהקוד שלי בא לחסוך מעבר מיותר על כל הtd, ואיבדת את זה.

                א מנותק
                א מנותק
                אהרן
                כתב ב נערך לאחרונה על ידי
                #9

                @dovid אמר בשאלה ב JS מוטמעת ב HTML:

                אפשר הרבה יותר מזה

                אשמח לדוגמא.

                תגובה 1 תגובה אחרונה
                0
                • yossizY yossiz

                  @dovid אמר בשאלה ב JS מוטמעת ב HTML:

                  הקוד של @yossiz בנוי באופן שרוצים לספור גם כמה תוצאות בתוך אותה שורה (למרות שבקוד שהוצג לא נעשה שימוש בספירה הזו),

                  נכון, שמתי לב לכל זה. רציתי לעשות כמה שפחות שינויים למבנה הקוד.

                  dovidD מחובר
                  dovidD מחובר
                  dovid
                  ניהול
                  כתב ב נערך לאחרונה על ידי
                  #10

                  @yossiz אמר בשאלה ב JS מוטמעת ב HTML:

                  נכון, שמתי לב לכל זה. רציתי לעשות כמה שפחות שינויים למבנה הקוד.

                  ברור, רק שיתפתי את השואל בנקודה הזו.

                  @אהרן אמר בשאלה ב JS מוטמעת ב HTML:

                  @dovid אמר בשאלה ב JS מוטמעת ב HTML:

                  אפשר הרבה יותר מזה

                  אשמח לדוגמא.

                  אני התכוונתי לבדוק בfind אם ריק אבל אח"כ נזכרתי בsome שעושה בדיוק את זה, הוא מחזיר חיובי מייד במקרה הראשון של הצלחה:

                  return [...tr.getElementsByTagName("td")].some(e => e.innerText.includes(filter));
                  
                  • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                  • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                  א תגובה 1 תגובה אחרונה
                  3
                  • dovidD dovid

                    @yossiz אמר בשאלה ב JS מוטמעת ב HTML:

                    נכון, שמתי לב לכל זה. רציתי לעשות כמה שפחות שינויים למבנה הקוד.

                    ברור, רק שיתפתי את השואל בנקודה הזו.

                    @אהרן אמר בשאלה ב JS מוטמעת ב HTML:

                    @dovid אמר בשאלה ב JS מוטמעת ב HTML:

                    אפשר הרבה יותר מזה

                    אשמח לדוגמא.

                    אני התכוונתי לבדוק בfind אם ריק אבל אח"כ נזכרתי בsome שעושה בדיוק את זה, הוא מחזיר חיובי מייד במקרה הראשון של הצלחה:

                    return [...tr.getElementsByTagName("td")].some(e => e.innerText.includes(filter));
                    
                    א מנותק
                    א מנותק
                    אהרן
                    כתב ב נערך לאחרונה על ידי
                    #11

                    @dovid אמר בשאלה ב JS מוטמעת ב HTML:

                    @yossiz אמר בשאלה ב JS מוטמעת ב HTML:

                    נכון, שמתי לב לכל זה. רציתי לעשות כמה שפחות שינויים למבנה הקוד.

                    ברור, רק שיתפתי את השואל בנקודה הזו.

                    @אהרן אמר בשאלה ב JS מוטמעת ב HTML:

                    @dovid אמר בשאלה ב JS מוטמעת ב HTML:

                    אפשר הרבה יותר מזה

                    אשמח לדוגמא.

                    אני התכוונתי לבדוק בfind אם ריק אבל אח"כ נזכרתי בsome שעושה בדיוק את זה, הוא מחזיר חיובי מייד במקרה הראשון של הצלחה:

                    return [...tr.getElementsByTagName("td")].some(e => e.innerText.includes(filter));
                    

                    זה יותר קצר?
                    נראה שרק בתווים בודדים.

                    dovidD תגובה 1 תגובה אחרונה
                    0
                    • א אהרן

                      @dovid אמר בשאלה ב JS מוטמעת ב HTML:

                      @yossiz אמר בשאלה ב JS מוטמעת ב HTML:

                      נכון, שמתי לב לכל זה. רציתי לעשות כמה שפחות שינויים למבנה הקוד.

                      ברור, רק שיתפתי את השואל בנקודה הזו.

                      @אהרן אמר בשאלה ב JS מוטמעת ב HTML:

                      @dovid אמר בשאלה ב JS מוטמעת ב HTML:

                      אפשר הרבה יותר מזה

                      אשמח לדוגמא.

                      אני התכוונתי לבדוק בfind אם ריק אבל אח"כ נזכרתי בsome שעושה בדיוק את זה, הוא מחזיר חיובי מייד במקרה הראשון של הצלחה:

                      return [...tr.getElementsByTagName("td")].some(e => e.innerText.includes(filter));
                      

                      זה יותר קצר?
                      נראה שרק בתווים בודדים.

                      dovidD מחובר
                      dovidD מחובר
                      dovid
                      ניהול
                      כתב ב נערך לאחרונה על ידי dovid
                      #12

                      @אהרן זה לא בא לקצר...
                      תקרא את מה שכתבתי.
                      אם נדקדק פה על קוצו של יוד, אז גם Array.from (שזה בעצם ה [...]) כנראה פחות יעיל מלולאה.
                      אבל לא נכנסתי לזה, כי קריאות דוחה ביצועים בכלל ובצד לקוח בפרט.

                      עריכה: לחיסכון בArray.from ראה https://tchumim.com/topic/9259 .

                      • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                      • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                      תגובה 1 תגובה אחרונה
                      3
                      • dovidD dovid העביר נושא זה מ-תכנות ב-
                      תגובה
                      • תגובה כנושא
                      התחברו כדי לפרסם תגובה
                      • מהישן לחדש
                      • מהחדש לישן
                      • הכי הרבה הצבעות


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

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

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