Ошибка «Требуется объект» в IE из $ .map для массива элементов dom - PullRequest
0 голосов
/ 05 апреля 2011

Для

$.map(holder[i], function (elem, index) {

    if (elem.nodeType === 1) {
        var attr = "";
        if (typeof elem.attributes !== 'undefined') {
            attr = ' ' + elem.attributes[0].name + '=' + '"' + elem.attributes[0].nodeValue + '"';
        }
        return '<' + elem.nodeName + attr + '>' + elem.textContent + '</' + elem.nodeName + '>';
    } else if (elem.nodeType === 3) {
        return elem.textContent
    }
});

Где holder [i] - это массив узлов, полученных при итерации по XML с

$ ('[btn-label = "' + title + '"] flashtext ', myXML) .each (function () { holder.push ($ (это) .contents () получаем ().); });

почему я могу получить ошибку «Требуется объект» в IE7? Говорит, что проблема здесь:

if (typeof elem.attributes !== 'undefined' )

1 Ответ

0 голосов
/ 05 апреля 2011

Это связано с тем, что свойство attribute объекта jQuery никогда не будет неопределенным, а будет null (например, текстовый узел), пустым массивом (для тега без атрибутов, например, <strong>) или массивом. ассоциативных массивов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...