различить нодколлекцию от объекта
в своей либе использую функцию type.
сейчас, за неимением лучшего варианта, нодколлекция детектится по св-ву length... есть конечно более надёжные и красивые решения, но для них есть дёготь, в виде ie7-8. В них нодколлекция: [object Object]... В общем если есть умные идеи - поделитесь. |
Object.prototype.toString.call(some) === "[object Array]"Если some - настоящий массив, то будет true. Для массивоподобных структур типа arguments или node collection, возвращаемой, например, document.getElementsbyTagName('div'), будет - false. |
Цитата:
Я кстати не оч понял почему Array? |
Цитата:
|
так нодколлекция ж объект вроде у всех:)
|
а, я решил, что ты от массива хочешь отличить (что обычно бывает нужно :)
|
А всё. Не заметил. Ты не правильно понял. Я хочу коллекцию от нативного объекта отличить. Если она отличается....
|
:)
|
Object.prototype.toString.call(document.getElementsByTagName('div')) == "[object NodeList]" так пробовал? |
В IE<9 можно так:
var list = document.getElementsByTagName("*"), array = []; function isLtIE9DOMObj(obj) { return Object(obj) === obj && !(obj instanceof Object); } console.log(isLtIE9DOMObj(list)); console.log(isLtIE9DOMObj(array)); |
Часовой пояс GMT +3, время: 10:24. |