Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как сделать перебор коллекции с кликом? (https://javascript.ru/forum/misc/71858-kak-sdelat-perebor-kollekcii-s-klikom.html)

booboonya 18.12.2017 04:42

Как сделать перебор коллекции с кликом?
 
Скрипт по задумке должен удалять ВСЕ документы в VK ,но я не понимаю как кликнуть по следующему номеру в коллекции.
Или как вместо номера элемента поставить переменную?

var x = document.getElementsByClassName('docs_action_icon docs_delete_row').length;
if (x!=0) {
	document.getElementsByClassName('docs_action_icon docs_delete_row')[0].click();
	}
else {
	alert("end");
}


Что-бы он не только первый (нулевой) документ удалял,но и все последующие.
Я так догадываюсь что туда надо впихнуть:

for (var i=0; i<=[0].length; i++)


пробовал по-разному,но у меня он не работает никак.

Dilettante_Pro 18.12.2017 11:54

booboonya,
А что это за конструкция?
for (var i=0; i<=[0].length; i++)

Не догадываюсь:blink:
Метод getElementsByClassName

booboonya 18.12.2017 12:38

Цитата:

Сообщение от Dilettante_Pro (Сообщение 473151)
booboonya,
А что это за конструкция?
for (var i=0; i<=[0].length; i++)

Не догадываюсь:blink:
Метод getElementsByClassName


Я переписал скрипт ,но теперь он не удаляет самый первый элемент
var x = document.getElementsByClassName('docs_action_icon docs_delete_row').length;
if (x!=0) {
	for (var i=[0].length; i<x; i++) {
    document.getElementsByClassName('docs_action_icon docs_delete_row')[i].click();
	}
}
else {
    alert("end");
}

Dilettante_Pro 18.12.2017 12:47

booboonya,
Вы бы посмотрели ссылку из моего поста....

booboonya 18.12.2017 13:18

Цитата:

Сообщение от Dilettante_Pro (Сообщение 473159)
booboonya,
Вы бы посмотрели ссылку из моего поста....

Я посмотрел ссылку сразу ,но все равно не понял где ошибка. Конструкция в моем первом примере ( [0].length ) - получение элемента по номеру. Я ее взял отсюда :
https://learn.javascript.ru/searchin...D1%82%D0%BE-id

И там написано : "Коллекцию нужно или перебрать в цикле или получить элемент по номеру и уже ему присваивать value, например так:
document.getElementsByTagName('input')[0].value = 5;"
В цикле так нельзя делать?

Dilettante_Pro 18.12.2017 13:25

booboonya,
В статье по ссылке ответ на ваш вопрос один к одному, не нужно никаких танцев с бубном.
var x = document.getElementsByClassName('docs_action_icon docs_delete_row');
	for (var i=0; i<x.length; i++) {
              x[i].click();
	}

    alert("end");

booboonya 18.12.2017 13:28

Спасибо.

Dilettante_Pro 18.12.2017 13:36

booboonya,
Нужно хоть немного читать учебники, в частности, про массивы.
Например, [0] - это массив из одного элемента, значение которого равно 0. Соответственно, [0].length равно 1 - это длина этого массива.


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