Подскажите про this
есть к примеру такой код
<div onclick="f()">Жми!</div> <script> function f( ) { this.innerHTML="Привет!"; }; </script> Он не работает, объясните, пожалуйста, как через this можно поменять этот innerHTML. Объясните поподробней, я с объектами не программировал, про них мало знаю. Но читал, что такие элементы как див и проч js тоже рассматривает как объект |
Sergius182,
<div onclick="f.bind(this)()">Жми!</div> <script> function f( ) { this.innerHTML="Привет!"; }; </script> |
похожая тема http://javascript.ru/forum/misc/7756...tml#post508075
Цитата:
В твоем примере this указывает на window при клике на диве. <div onclick="f()">Жми!</div><script> function f( ) { alert (this === window); };</script> (К.О.) При клике на див вызывается функция onclick а не функция f <div onclick="f()" id="dv">Жми!</div><script> function f( ) { this.innerHTML="Привет!"; }; alert ("--- тело функции onclick -----\r\n"+dv.onclick+"\r\n--- тело функции f -----\r\n"+f); </script> Можно явно свойству onclick присвоить ссылку на функцию f тогда this будет работать как ты и ожидаешь. <div onclick="f()" id="dv">Жми!</div><script> function f( ) { this.innerHTML="Привет!"; }; dv.onclick = f; </script> |
Часовой пояс GMT +3, время: 07:26. |