Помощь с js и DOM
<div class='module'> <div class='ololo'> <h3 color='white'> <i class='module-actions-icon'></i>Fortnite</h3> <div> <img id= "fortphoto" alt = "КупитьFortnite"onclick = "window.location=''" src=""></div></div></div> <div class='module'> <div class='ololo'> <h3 color='white'> <i class='module-actions-icon'></i>CS:GO</h3> <div> <img id= "csgophoto" alt = "Купить CS:GO"onclick = "window.location=''" src=""></div></div></div> На странице есть множество классов с именем module. Помогите найти именно эти два по id img. Заранее благодарен. |
rafchikcv,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> .red { background-color: #FF0000; color: #FFFFFF; } </style> </head> <body> <div class='module'> <div class='ololo'> <h3 color='white'> <i class='module-actions-icon'></i>Fortnite</h3> <div> <img id= "fortphoto" alt = "КупитьFortnite"onclick = "window.location=''" src=""></div></div></div> <div class='module'> <div class='ololo'> <h3 color='white'> <i class='module-actions-icon'></i>CS:GO</h3> <div> <img id= "csgophoto" alt = "Купить CS:GO"onclick = "window.location=''" src=""></div></div></div> <script> let divs = ["#fortphoto","#csgophoto"].map(id => [...document.querySelectorAll(".module")].filter(div => div.querySelector(id))[0]); divs.forEach(div => div.classList.add("red")) console.log(divs) </script> </body> </html> |
rafchikcv,
[html run] ... минимальный код страницы с вашей проблемой [/html] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
огромное спасибо!
|
Цитата:
let divs = [...document.querySelectorAll(".module")].filter(node => node.querySelector("#fortphoto, #csgophoto")); |
Цитата:
а нет какого нибудь contains или matches для данного случая, что-то типа https://api.jquery.com/parents/ ? |
В CSS Selectors Level 4 определён псевдо-класс has, который позволяет это сделать так...
let divs = [...document.querySelectorAll(".module:has(#fortphoto, #csgophoto)")]; https://caniuse.com/#feat=css-has однако нигде не реализовано |
Malleys,
:thanks: |
самый быстрый вариант:
var m1 = document.getElementById('fortphoto').closest('.module'); var m2 = document.getElementById('csgophoto').closest('.module'); |
Alexandroppolus,
:thanks: |
Часовой пояс GMT +3, время: 06:16. |