Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.03.2020, 05:28
Аватар для Максим Ученик
Интересующийся
Отправить личное сообщение для Максим Ученик Посмотреть профиль Найти все сообщения от Максим Ученик
 
Регистрация: 13.08.2019
Сообщений: 25

Как присвоить width из data ?
Есть не известное кол-во блоков в него я сгенерировал svg и так же хочу из data-num сделать style.left для элемента svg.

Но получается что left для всех line присваивается из нижнего data-num.

Что я делаю не так ?

https://codepen.io/topicstarter/pen/OJVjBOz

Последний раз редактировалось Максим Ученик, 04.03.2020 в 05:37.
Ответить с цитированием
  #2 (permalink)  
Старый 04.03.2020, 07:32
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от Максим Ученик
Что я делаю не так ?
Что-то ты там накрутил...

Вот это
let num = parents[i].parentElement.lastElementChild.firstElementChild.getAttribute("data-num");
parents[i].style.left = num + "%";

Зачем делаешь в цикле?
for(let k=0; k<lines.length; k++){
   // ...
}
Ответить с цитированием
  #3 (permalink)  
Старый 04.03.2020, 07:36
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Вот это
let num = parents[i].parentElement.lastElementChild.firstElementChild.getAttribute("data-num");

Можно заменить на такое
let num = parents[i].parentElement.querySelector('line').getAttribute("data-num");

Все будет понятнее...
Ответить с цитированием
  #4 (permalink)  
Старый 04.03.2020, 07:40
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Так же не понятно зачем вообще цикл в цикле...
for(let i=0; i<parents.length; i++){
	for(let k=0; k<lines.length; k++){
	}
}

У тебя ведь количество элементов svg и line совпадает... Можно обойтись и одним циклом.
Ответить с цитированием
  #5 (permalink)  
Старый 04.03.2020, 10:10
Аватар для Максим Ученик
Интересующийся
Отправить личное сообщение для Максим Ученик Посмотреть профиль Найти все сообщения от Максим Ученик
 
Регистрация: 13.08.2019
Сообщений: 25

Сообщение от ksa Посмотреть сообщение
Так же не понятно зачем вообще цикл в цикле...
for(let i=0; i<parents.length; i++){
	for(let k=0; k<lines.length; k++){
	}
}

У тебя ведь количество элементов svg и line совпадает... Можно обойтись и одним циклом.
я уже сделал то что хотел: https://codepen.io/topicstarter/pen/rNVzowd но меня смущает что я налепил очень много parentChild
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как присвоить переменной значение txt javascript? Nosok Javascript под браузер 1 01.03.2019 08:37
Как правильно устанавливать одинарные кавычки в data отрибуте? s24344 Элементы интерфейса 9 16.10.2018 09:44
Как присвоить значение переменной rrrromannnn jQuery 2 28.06.2018 00:03
Как для нескольких элементов с одним id присвоить style rfhnjirf Элементы интерфейса 3 19.05.2017 10:41
Как отправить данные в Form Data вместо Request Payload? Shitbox2 Angular.js 2 26.05.2013 22:40