Подскажите про 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:18. |