Как указать на выбранный элемент

271
19 июня 2017, 22:33

Скрипт

function hideobj() { 
this.style.display = "none"; 
} 
document.body.hideobj();
BODY CONTENT

Почему данный скрипт не скрывает элемент и выдает ошибку. B как указать на выбранный элемент в функции, через this Не работает.

Answer 1

Вы объявили функцию, а пытаетесь вызвать метод объекта. Самый простой способ впилить функцию как метод - это взять и впилить прямо в объект:

document.body.hideobj = function () { 
    this.style.display = "none"; 
} 
document.body.hideobj();
BODY CONTENT

Можно тем же манером впилить функцию в прототип, тогда такая функция появится у всех объектов этого класса:

HTMLElement.prototype.hideobj = function () { 
    this.style.display = "none"; 
} 
document.forms[0].hideobj();
BODY CONTENT 
<form>NE BODY CONTENT</form>

Еще один вариант - можно воспользоваться методами bind, call и apply, чтобы передать нужный нам this :

function hideobj() { 
    this.style.display = "none"; 
} 
hideobj.bind(document.forms[0])(); 
hideobj.call(document.forms[1]); 
hideobj.apply(document.forms[2]);
<form>Bind</form> 
<form>Call</form> 
<form>Apply</form>

READ ALSO
Добавление собственных правил в Ace Editor

Добавление собственных правил в Ace Editor

Перечитал множество инструкций, в том числе официальный источник: https://acec9

270
Возможен ли переход по якорям на странице без ссылок а?

Возможен ли переход по якорям на странице без ссылок а?

У меня кнопка "вверх" http://joxiru/Y2LqlnGu3P0wA6 сделана ссылкой:

289
JavaScript Array/ Delete a specific object from array/ Add a new object

JavaScript Array/ Delete a specific object from array/ Add a new object

Всем добрый вечер) Друзья уже мозг кипит, нужна ваша помощьУ меня 3 задания на выполнения для того что бы приняли на internship в одной компаний

270
Как начать работать с npm и babel?

Как начать работать с npm и babel?

ПриветУ меня возникла проблема

241