À L'Aide De L'Objet.le prototype.toString.call() pour retourner le type d'objet avec Javascript ne fonctionne pas sous IE

J'espère que je peux demander à ce d'une manière compréhensible...

Dans l'ensemble, je suis en train d'essayer de déterminer quel type d'objet, je suis actuellement en train de traiter avec.

Je suis de la création d'une collection (HTML est de donner l'exemple, non littéral) et j'ai besoin de filtre de ma collection de certains éléments, par exemple:

        <div id="tabContentWrap">
            <div id="tab">
                <a href="http://somelink">Link Element</a><img src="img.jpg" alt="img" />
                <select id="my_select"><option value="1">1</option></select>
            </div>
        </div>

function getFilteredElements() {
    var tabContent = getElementsByClass("tabContentWrap", document.getElementById(tabWrapId), "div");

    for (var j = 0; j < tabContent.length; j++){
        tabContentLinks = tabContent[j].getElementsByTagName('*');
        for (var k = 0; k < tabContentLinks.length; k++){
            //Here i attempt to filter the collection
            if (tabContentLinks[k] == '[object HTMLSelectElement]') {
                alert("found select list");
            }
         }
     }
 }

Qui fonctionne très bien sous Mozilla mais pas sous Internet Explorer 8, tabContentLinks[k] retourne [object] au lieu de [object 'ObjectType']

Donc j'ai étudié et découvert que vous pouvez utiliser Object.prototype.toString.call(object) pour obtenir le type d'objet, à nouveau, qui fonctionne très bien sous Mozilla mais renvoie [object Object] dans IE8...

J'appelle

get_type(tabContentsLink[k]);

qui exécute la fonction suivante:

function get_type(thing){
    if (thing === null) return "[object Null]";
    //special case
    return Object.prototype.toString.call(thing);
}

Mais cela renvoie [object Object]

Ne Object.prototype.toString.call() jamais de retour le type de l'objet dans IE ou suis-je très loin et les aboiements d'un lampadaire au lieu d'un arbre?

OriginalL'auteur dpmguise | 2010-11-19