Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Последовательность функций как в jquery (https://javascript.ru/forum/events/30898-posledovatelnost-funkcijj-kak-v-jquery.html)

platedz 20.08.2012 04:57

Кстати, насколько я понимаю, вот так вот можно создать полную копию объекта.
copy = {}.prototype = tel;

при этом {}.prototype здесь служит как бы посредником.
А как еще можно записать подобное выражение?
И самый главный вопрос, как заставить работать код, если элемента на странице не существует.

cyber 20.08.2012 05:00

опять туплю =)
а зачем вообще что то делать?
если такого id нет то в переменная dd = null;
var dd =  document.getElementById('id');
alert('run');

var dd = document.getElementById;
alert('run');

и код ниже выполнится, ошибки не будет

platedz 20.08.2012 14:07

В данном случае я вывожу кнопку войти, в личном кабинете, либо кнопку кабинет, если человек вошел. Кроме прочего элемента может еще не быть на странице, но он может быть создан в ходе каких-то действий.

Видимо ошибка выдается т.к. к объекту котогоро нет, применяется метод, на что и ругается браузер.

cyber 20.08.2012 14:49

ну смотрите вы не записали нечего переменную и применили метод вы всеравно получите ошибку, перед тем как его применять делайте проверку и все

platedz 20.08.2012 18:07

Спасибо. Вроде все верно. Буду разбирать код по частям и разбираться.
Возник еще один вопрос.
В данном примере я могу применить метод к dd, но не могу вернуть сам dd - элемент на который я применяю метод. Можно ли как-то сделать так, чтобы применить к dd стандартные методы и свойства javascript,
т.е. сделать так, чтобы подобная запись работала

alert(tel.elems(e).innerHTML)

cyber 20.08.2012 18:09

я не знаю, просто в jquery , все на много сложней чем вам кажется=)

platedz 20.08.2012 18:33

Спору нет.
Но я к сожалению довольно слаб в ооп.
На данный момент я могу либо вернуть элемент
return dd = document.getElementById('id');

либо вернуть this.
dd = document.getElementById('id'); return this;

При этом я честно говоря, так до конца и не понял, что же происходит, когда я возвращаю this.
т.е. this содержит весь код объекта.
Т.е. если я верно понимаю я возвращаю код объекта, т.е. сам объект и что происходит потом ?

cyber 20.08.2012 18:52

можно так
<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>

    <div id='elem'>askasdfskdofkdof</div>  
    <script>
      
      var object_ = {
      
        find: function (id) {
        
         this.elem = document.getElementById(id);
          this.innerHTML = this.elem.innerHTML;
          
          return this;
        
        },
        
        
      
      
      }
      

      function $(select) {
      
      
      
      
      
       return object_.find(select);
      }


      alert($('elem').innerHTML)
    </script>

  </body>
</html>

vadim5june 20.08.2012 19:47

Цитата:

Сообщение от platedz
Т.е. если я верно понимаю я возвращаю код объекта, т.е. сам объект и что происходит потом ?

и значит снова можно обратится к тому же объекту-получается цепочка если бы ничего не возвращали(или что то другое) то цепочка прерывается

platedz 20.08.2012 20:37

Спасибо.
А где содержится InnerHTML? Можно ли как-то получить весь список глобальных свойств и затем перебрав их в цикле присвоить их к данному объекту.


Часовой пояс GMT +3, время: 14:19.