Как изменить не прямого потомка на чистом js? Здравствуйте,
Есть такой код, например:
HTML:









JS:$(function(){
var str = "";
$(".div-class-0").each(function(i,e){
console.log($(this).attr("attr")+" / "+$(this).find(".span-class").attr("attr"));
});
});
На выходе получается:аттрибут 1-го div / аттрибут 1-го span
аттрибут 2-го div / аттрибут 2-го span
аттрибут 3-го div / аттрибут 3-го span
Как сделать то же самое, но без jQuery? А именно интересует как качественно заменить .find()
Не хочу использовать querySelectorAll(), потому что беспокоюсь за строгость наследования. Я хочу быть уверен что в каждой строке на выходе я увижу аттрибуты от div'a и span'a которые 100% относятся к одному блоку.
Извиняюсь, если смазано объяснил, я очень старался :)
И еще возможно я зря переживаю и действительно вот такое решение вполне сгодится:var divclass0_arr = document.querySelectorAll(".div-class-0");
var spanclass_arr = document.querySelectorAll(".span-class");
for(i=0;i

21 Авг 2019 в 06:27
218 +1
0
Ответы
1

Для достижения того же результата без использования jQuery и без использования querySelectorAll() можно использовать методы DOM объектов. Вот как это можно сделать:

document.addEventListener("DOMContentLoaded", function() {
var divs = document.getElementsByClassName("div-class-0");
var spans = document.getElementsByClassName("span-class");
for (var i = 0; i < divs.length; i++) {
var divAttr = divs[i].getAttribute("attr");
var spanAttr = spans[i].getAttribute("attr");
console.log(divAttr + " / " + spanAttr);
}
});

Этот код будет работать так же, как и ваш jQuery код, но без использования jQuery. Он безопасен, так как он ищет элементы с помощью классов, которые соответствуют структуре HTML, и параллельно получает атрибуты у соответствующих div и span элементов.

20 Апр 2024 в 13:18
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир