Задать вопрос
@pvalerii
front end

Как правильно применить функцию к элементу?

Как правильно применить функцию к элементу.
Так выдает ошибку - "elem.colorAdd is not a function"
Подскажите, что тут не так
<p id="element">Hello! world!</p>
<script>
colorAdd = function(){  
  this.setAttribute("style", "color:red; border: 1px solid blue;")
}
var elem = document.getElementById("element")
elem.colorAdd();
</script>
  • Вопрос задан
  • 64 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 2
sergiks
@sergiks Куратор тега JavaScript
♬♬
У элемента нет метода .colorAdd(), чтобы вызывать так, как вы написали. Вместо
elem.colorAdd();
можно сделать
colorAdd.apply(elem);

Это вызовет функцию colorAdd(), назначив её контекстом (значением this) переданный первым параметром elem и всё сработает так, как вы задумали. Фиддл.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
amf1k
@amf1k
Можно через прототипы
Element.prototype.colorAdd = function(){
	this.setAttribute("style", "color:red; border: 1px solid blue;")
}
var elem = document.getElementById("element");
elem.colorAdd();
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы