בעיית indexOf ו-Internet Explorer

שני פתרונות אלגנטיים לבעיית indexOf ואינטרנט אקספלורר.

אין כמו אינטרנט אקספלורר כדי לספק לכל מתכנת שהוא שלל של בעיות הזויות. מסתבר שהמתודה האולטרא שימושית indexOf שמשמשת אותנו למצוא טקסט מסוים במערך של JavaScript וזמינה החל מגרסת JavaScript 1.5 לא עובדת באינטרנט אקספלורר 6,7 וגם 8.

ישנן שתי דרכים לפתרון מהיר של הבעיה. הראשונה היא להשתמש בפונקצית jQuery שמיועדת לחיפוש במערכים. שם הפונקציה הוא jQuery.inArray. ובמדריך המוקדש לפונקציות העזר של jQuery יש הסבר מקיף + דוגמא כיצד להשתמש בו.

הנה הדוגמא:


arrOfNames = ["david", "moshe", "ran", "omri", "yael"];
$('#myButton6').click(function () {
result = jQuery.inArray("omri", arrOfNames);
alert("Omri is at "+result);
});

פתרון נוסף הוא להוסיף את ה-indexOf כ-prototype של מתודה לאובייקט מסוג Array:


if(!Array.indexOf){
    Array.prototype.indexOf = function(obj){
        for(var i=0; i<this.length; i++){
            if(this[i]==obj){
                return i;
            }
        }
        return -1;
    }
}


הוספת הקוד לעיל ל-JavaScript לא מחייבת שימוש ב-jQuery כמובן ומוסיפה את ה-indexOf כמתודה חדשה למערך ומאפשרת להשתמש בה.

פוסטים נוספים שכדאי לקרוא

רספברי פיי

הרצת גו על רספברי פיי

עולם הרספברי פיי והמייקרים ניתן לתפעול בכל שפה – לא רק פייתון או C – כאן אני מסביר על גו

פתרונות ומאמרים על פיתוח אינטרנט

המנעו מהעלאת source control לשרת פומבי

לא תאמינו כמה אתרים מעלים את ה-source control שלהם לשרת. ככה תמצאו אותם וגם הסבר למה זה רעיון רע.

גלילה לראש העמוד