Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   removeAttribute is not a function (https://javascript.ru/forum/events/68100-removeattribute-not-function.html)

strange.tany 26.03.2017 13:51

removeAttribute is not a function
 
function opening() {
	var bags = document.getElementsByClassName('close');
	for (var i=0; i < bags.length; i++) {
		bags[i].onclick = task;
	}
}
function task(e) {
	var imNum = e.id;
	e.removeAttribute('src');
	e.setAttribute('src', imNum + "open.png");
}

при выполнении данного кода консоль выдает ошибку e.removeAttribute is not a function. в чем именно проблема

рони 26.03.2017 14:04

strange.tany,
почему вы решили что у обьекта event есть свойство removeAttribute или setAttribute или id?
может поискать элемент на котором произошло событие

strange.tany 26.03.2017 14:33

рони,
<img class='close' id='1' src='1.png'>
<img class='close' id='2' src='2.png'>
<img class='close' id='3' src='3.png'>
<img class='close' id='4' src='4.png'>

по идее на этих элементах происходит событие

рони 26.03.2017 14:41

strange.tany,
вам элемент нужен либо из event, либо из bags - то и другое одинаково. читайте про event это проще, хотя в bags он уже есть, но вам похоже это будет сложнее.

strange.tany 26.03.2017 15:19

рони,
спасибо. Сделала через event и вроде сейчас все нормально пошло

рони 26.03.2017 15:40

strange.tany,
window.addEventListener('DOMContentLoaded', function() {
[].forEach.call(document.querySelectorAll('.close'), function(item) {
        item.addEventListener('click', function(event) {
            item.src = item.id + 'open.png';
        });
    });
});


или
function task(e) {
  var item = e.target;
  item.src = item.id + 'open.png';
}


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