Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.11.2017, 13:47
Интересующийся
Отправить личное сообщение для bombino1 Посмотреть профиль Найти все сообщения от bombino1
 
Регистрация: 03.04.2016
Сообщений: 27

новичку нужна помощь с циклом
Привет всем. Я написал крохотный скрипт для greasemonkey, который на лету меняет в все id товаров на один, нужный мне:

// ==/UserScript==

document.getElementById("product_138649").value = "138503";
document.getElementById("product_138641").value = "138503";
document.getElementById("product_138491").value = "138503";
document.getElementById("product_138645").value = "138503";
document.getElementById("product_138653").value = "138503";
document.getElementById("product_138661").value = "138503";
document.getElementById("product_138671").value = "138503";

все работает, но иногда product_##### меняются, убираются магазином, и тогда скрипт не срабатывает, не найдя определенный product. Можно ли как-то сделать мою замену циклом, и с маской, чтоб value 138503 присваивался всем product_* ? Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 11.11.2017, 14:03
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

var p = document.querySelectorAll('[id^=product_]');


Это коллекция. Далее можно ее и циклом for обойти и сотворить нужное.
Ответить с цитированием
  #3 (permalink)  
Старый 11.11.2017, 14:15
Интересующийся
Отправить личное сообщение для bombino1 Посмотреть профиль Найти все сообщения от bombino1
 
Регистрация: 03.04.2016
Сообщений: 27

спасибо за быстрый ответ, попробую, хотя циклы еще не изучал, может получится
Ответить с цитированием
  #4 (permalink)  
Старый 11.11.2017, 14:18
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,723

[].forEach.call(document.querySelectorAll('[id^=product_]'),function(node){
	node.value=138503;
});
Ответить с цитированием
  #5 (permalink)  
Старый 11.11.2017, 14:38
Интересующийся
Отправить личное сообщение для bombino1 Посмотреть профиль Найти все сообщения от bombino1
 
Регистрация: 03.04.2016
Сообщений: 27

Nexus: потрясающе, спасибо, всё работает!
Ответить с цитированием
  #6 (permalink)  
Старый 28.03.2021, 20:23
Интересующийся
Отправить личное сообщение для bombino1 Посмотреть профиль Найти все сообщения от bombino1
 
Регистрация: 03.04.2016
Сообщений: 27

Привет все, такой вопрос, какой командой можно удалить всех моделей сайта кто в оффлайне, вот скриншот https://thumb.cloud.mail.ru/weblink/...npht%40mail.ru желтым я обвёл всех моделей у кого такой статус. Можно ли их всех скрыть, свернуть, не загружать? Просто их сотни и они очень тормозят при авторефреше, и подтягивают ненужную графику.. Мне в прошлый раз помогли алгоритмом поиска, вроде так должно сработать, но затык как раз в команде удаления всего что совпало с 'offline':

// ==UserScript==
// @name        auto
// @namespace   phonemates.com
// @include     *[url]https://phonemates.com/myfavorites*[/url]
// @version     1
// @grant       GM_openInTab
// ==/UserScript==



function getOfflineLinks() {
  return Array.prototype.filter.call(
    document.querySelectorAll('.hcm-hostNameWrapper + .hcm-rightBottomIcons .chatType'),
    element => element.textContent.trim() === 'Offline'
  ).map(
    element => element
      .closest('.hcm-rightBottomIcons')
      .previousElementSibling
  )
}


исходник страницы: https://cloud.mail.ru/public/ugE3/YKrao836r

на сайте 3 категории статусов, идут в очерёдности: free, private, и под конец offline (которых и хочется вовсе не подгружать, обрезать страницу до них).
Спасибо!
Ответить с цитированием
  #7 (permalink)  
Старый 30.03.2021, 22:31
Интересующийся
Отправить личное сообщение для bombino1 Посмотреть профиль Найти все сообщения от bombino1
 
Регистрация: 03.04.2016
Сообщений: 27

друзья-товарищи, подсобите пожалуйста, ведь там пару строчек всего кода. Сбил все руки-ноги, ничего не получается
Ответить с цитированием
  #8 (permalink)  
Старый 30.03.2021, 23:25
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

bombino1,
function removeAndHideOffline() {
  document.body.insertAdjacentHTML('beforeend', '<style>.layoutWrapper > .hc-offline{display: none}</style>');
  document.querySelectorAll('.layoutWrapper > .hc-offline').forEach(
    element => element.parentNode.remove()
  )
}
removeAndHideOffline()
__________________
29375, 35
Ответить с цитированием
  #9 (permalink)  
Старый 31.03.2021, 11:16
Интересующийся
Отправить личное сообщение для bombino1 Посмотреть профиль Найти все сообщения от bombino1
 
Регистрация: 03.04.2016
Сообщений: 27

Огромное спасибо, как часы сработало, как и всегда!

Последний раз редактировалось bombino1, 01.04.2021 в 04:25.
Ответить с цитированием
  #10 (permalink)  
Старый 17.10.2021, 18:14
Интересующийся
Отправить личное сообщение для bombino1 Посмотреть профиль Найти все сообщения от bombino1
 
Регистрация: 03.04.2016
Сообщений: 27

Можно ли находясь в обычном режиме Firefox-a, открыть ссылку в JS именно в режиме incognito? Час гугления показал что windows.create() имеет ключ incognito, но синтаксис пишет ошибку в tampermonkey, возможно работает только в developer's add-on, спасибо большое!

Последний раз редактировалось bombino1, 17.10.2021 в 18:24.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь новичку shellddor Events/DOM/Window 4 09.06.2016 14:25
Нужна помощь по javascript darklend Общие вопросы Javascript 0 12.01.2014 23:33
Нужна помощь: Slider wheel Alex555 Мобильный JavaScript 0 15.05.2013 18:06
Нужна помощь по слайдеру seoguru Работа 3 28.01.2013 22:02
нужна помощь dominosoko Серверные языки и технологии 4 14.03.2010 02:17