Javascript.RU

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

При переборе значений Dom не работает push()
есть код

const xmlString = `
<list>
<student>
<name lang="en">
<first>Ivan</first>
<second>Ivanov</second>
</name>
<age>35</age>
<prof>teacher</prof>
</student>
<student>
<name lang="ru">
<first>Петр</first>
<second>Петров</second>
</name>
<age>58</age>
<prof>driver</prof>
</student>
</list>
`;
const parse = new DOMParser();
const xmlDOM = parse.parseFromString(xmlString,"text/xml");
//console.log(xmlString);
const listNode = xmlDOM.querySelectorAll("student");
let Arr = [], list = {};
let i=0;

var div_array = [...listNode];
listNode.forEach(student =>{



const age1 = student.querySelector("age").textContent;
const prof1 = student.querySelector("prof").textContent;
const name1 = student.querySelector("first").textContent + " " + student.querySelector("second").textContent;
console.log(age1, prof1, name1);
const langAttr1 = student.querySelector("name").getAttribute("lang") ;
list.name = name1;
list.prof = prof1;
list.age = age1;
list.lang = langAttr1;
console.log(list);
console.log("----------");
Arr.push(list);
console.log(Arr);


});


функция Arr.push(list); должна добавлять в пустой массив 2 значения : но добавляет одно и то же 2 раза вместо 2-х разных. Подскажите пожалуйста что не так.
Ответить с цитированием
  #2 (permalink)  
Старый 22.04.2023, 15:59
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

lnnansy,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #3 (permalink)  
Старый 22.04.2023, 16:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

Сообщение от lnnansy
2 раза вместо 2-х разных. Подскажите пожалуйста что не так.
создавать надо объект каждый раз, а не ссылаться на один и тот же.
Цитата:
При копировании переменной объекта копируется ссылка, но сам объект не дублируется.
читать тут https://learn.javascript.ru/object-copy
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Proxy объекта DOM: ошибка Illegal invocation при изменении style Ekaterina8888 Общие вопросы Javascript 2 05.04.2020 22:33
Не работает код, при дублировании блоков! Rockship Элементы интерфейса 8 17.06.2015 11:47
Не работает ajax при OnClick по ссылке firefox govorusha AJAX и COMET 8 06.06.2015 14:34
При подгрузке методом .load не работает input type=file sameness Общие вопросы Javascript 11 18.02.2015 13:21
При наборе адреса с www не работает AJAX (JQuery)! madmis AJAX и COMET 3 23.11.2009 19:03