Тема: for...in
Показать сообщение отдельно
  #10 (permalink)  
Старый 19.07.2008, 20:22
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Гость,
Цитата:
Ну в опере работать не будет потому что он не поддерживает тег <div>
Глупость.

Хранитель Света,
Вы можете обращаться к элементам объекта, если имя элемента - переменная, через квадратные скобки. Поскольку все объекты на самом деле являются дочерними к объекту window, вы можете воспользоваться таким кодом, который, впрочем, не будет работать с объектами, объявленными локально:
function getObjectPropertiesByName(objName)
{
    result = "";
    
    // Если запрошен не window
    if(objName != "window")
    {
        // Если такой объект существует
        if(typeof window[objName] == "object")
        {
            // Получаем его свойства, как элемента объекта window
            for(var i in window[objName])
            {
                result += objName +"."+ i +" = "+ window[objName][i] + ";\n";
            }
        } else {
            return false;
        }
    } else {
        // Иначе, выводим свойства объекта window
        for(var i in window)
        {
            result += objName +"."+ i +" = "+ window[i] + ";\n";
        }
    }
    
    return result;
}

var myTestObj = {
    some: "thing",
    hello: "world"
}

alert(getObjectPropertiesByName("myTestObj"));

У вас не должно возникнуть проблем в адаптации под свои нужды. Кроме того, идею можно развить, позволив, например, получать свойства дважды вложенных объектов, например "document.body".
Ответить с цитированием