Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.07.2008, 13:54
Аватар для Хранитель Света
Интересующийся
Отправить личное сообщение для Хранитель Света Посмотреть профиль Найти все сообщения от Хранитель Света
 
Регистрация: 11.05.2008
Сообщений: 20

for...in
Скрипт предназначен для того ,что бы пользователь ввел значение объекта,а программа бы пересчитала все properties этого объекта и вывела их на на укран в при помощ созднанного элемента "текст".Но у меня проблема,скрипт этого не делает. На сколько я понимаю проблема в несовпадении типов объекта,тоесть почему то он не воспринимает введенное имя объкта и не обрабатывает это значение в функции show(obj,objName). можете подсказать почему так происходит и как сделать так,что бы функции принимала это значение как аргумент?
Вот скрипт с хтмл:


<html>
<head>
<script>
   function showP(obj,objName) {
   var result = "";
   //var obj=document.getElementById("objV").value;
   //var objName=document.getElementById("objNameV").value;

     for(var i in obj){
      result += objName + "." + i + "=" + obj[i] + "\n";
      }
    return result;
   }
   var k=1;
   function creatT(){
    //var objS=function(){
      //obj1 = document.getElementById("objV").value;
      //return obj1;
      //}
   var objS = document.getElementById("objV").value;
   alert(objS);

   var objNameS=document.getElementById("objNameV").value;
    alert(objNameS);
    while(k==1){
    var txt=document.createTextNode(showP(objS,objNameS));
    //var txt=document.createTextNode("nnn");
    document.getElementById('nnn').appendChild(txt);
    k=2;
    alert("done1");
    }
    alert("done");
   }
 </script>


</head>
<body>
 <div id="nnn" style="width:300">
 </div>
 <form>
  <input type="button" value="Creat" onClick="creatT()">
  <input id="objV" type="text" size="10">
  <input id="objNameV" type="text" size="10">

 </form>
</body>
</html>

Последний раз редактировалось Хранитель Света, 17.07.2008 в 16:24.
Ответить с цитированием
  #2 (permalink)  
Старый 17.07.2008, 14:34
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Убедительная просьба: перечитывайте свои сообщения после постинга. Есть ведь кнопочка "ред.".

Да, и запятые, на самом деле, придумали не для того, чтобы детей в школе мучать, а чтобы текст можно было читать.
Ответить с цитированием
  #3 (permalink)  
Старый 17.07.2008, 15:33
Аватар для Хранитель Света
Интересующийся
Отправить личное сообщение для Хранитель Света Посмотреть профиль Найти все сообщения от Хранитель Света
 
Регистрация: 11.05.2008
Сообщений: 20

Ну вроде бы как отредактировал теперь можете подсказать?
Ответить с цитированием
  #4 (permalink)  
Старый 17.07.2008, 15:35
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

ага. есть еще теги для размещения КОДА.
так как сижу из инет клуба, то мне очень неприятно читать такой листинг.
ЗЫ. подсказать не могу, так как "из инет-клуба сижу"
Ответить с цитированием
  #5 (permalink)  
Старый 17.07.2008, 16:26
Аватар для Хранитель Света
Интересующийся
Отправить личное сообщение для Хранитель Света Посмотреть профиль Найти все сообщения от Хранитель Света
 
Регистрация: 11.05.2008
Сообщений: 20

Тем не менее ,уважаемый Gvosd, я на вас расчитую, вы мне не в малом помогли до этого случая. Поэтому я на вас расчитую)
Ответить с цитированием
  #6 (permalink)  
Старый 17.07.2008, 16:40
Аватар для Хранитель Света
Интересующийся
Отправить личное сообщение для Хранитель Света Посмотреть профиль Найти все сообщения от Хранитель Света
 
Регистрация: 11.05.2008
Сообщений: 20

Нет все таки немного протупил заработался))не работает

Последний раз редактировалось Хранитель Света, 17.07.2008 в 16:55.
Ответить с цитированием
  #7 (permalink)  
Старый 18.07.2008, 14:31
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

в файрфоксе работает, в опере нет.
чо-то я без пол-лииттры не врубаюсь(((
сори
Ответить с цитированием
  #8 (permalink)  
Старый 19.07.2008, 13:36
Гость
 
Сообщений: n/a

Сообщение от Gvozd Посмотреть сообщение
в файрфоксе работает, в опере нет.
чо-то я без пол-лииттры не врубаюсь(((
сори
Ну в опере работать не будет потому что он не поддерживает тег <div> меня больше интересует передается ли значение из поля как аргумент для функции?
Ответить с цитированием
  #9 (permalink)  
Старый 19.07.2008, 16:59
Аватар для Хранитель Света
Интересующийся
Отправить личное сообщение для Хранитель Света Посмотреть профиль Найти все сообщения от Хранитель Света
 
Регистрация: 11.05.2008
Сообщений: 20

Да а вот в лисе он выдает совсем не то что я от него ожидал.Вообще рекомендую посмотреть в ие
Ответить с цитированием
  #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".
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск