JavaScript

Изучаю JavaScript, думал что сложно, но оказалось это были цветочки...

Дошёл до DOM и тут началась настоящая пытка мозгам. Нет я понял структуру дерева, это просто. Но столько понятий и названий, у меня голова болит. Может подскажите как это усвоить. В голове путаница. Как это всё упорячдочить. Вопрос конечно задал на удачу. Врядли кто мне поможет. Но всё же кто учил, дайте советы из своего опыта.
Карпов Денис
Карпов Денис
28 587
Вот уж DOM точно не самое сложное, есть там вещи и посложнее. А методы и понятия зубрить не надо, их всегда можно посмотреть в справочнике. Ставьте практические задачи и решайте. Например нужно нам отсортировать список по алфавиту. И вот вам оно, родимое, манипулирование с DOM-деревом. Выглядит страшно, но если разобраться что к чему - всё это уже и не так страшно
________________
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<ul id="list">
<li>Язвенник</li>
<li>Авран</li>
<li>Валериана</li>
<li>Багульник</li>
</ul>
<script type="text/javascript">
var list = document.getElementById("list");
document.write(list.innerHTML);//выводит список
document.write("<hr />");
document.write(list);//выводит [object HTMLUListElement]
document.write("<hr />");
var listLi = list.getElementsByTagName("li");
document.write(listLi);//выводит [object HTMLCollection]
document.write("<br />");
//document.write(listLi.innerHTML); // выводит undefined
document.write("<hr />");
var sortList = [];
for (i = 0; i < listLi.length; i++) {
sortList.push(listLi[i].innerHTML)
}
document.write("<hr />");
//document.write(sortList.innerHTML); // выводит undefined
sortList.sort();
document.write(sortList); // Выводит Авран, Багульник, Валериана, Язвенник
var listNew = document.createElement("ul");
for (i = 0; i <= sortList.length - 1; i++) {
li = document.createElement ("li");
li.innerHTML = sortList[i];
listNew.appendChild (li);
}
document.write(listNew.outerHTML);
</script>
</body>
</html>
АЕ
Андрей Ермолаев
63 181
Лучший ответ
Андрей Ермолаев Меня поначалу тоже пугало, но тут просто разобраться нужно.
На деле всё просто. Отбираем в массив элементы списка, создаем новый пустой массив, и в цикле кидаем в него содержимое этих элементов. Сортируем массив. И дальше как раз работа с DOM. Создаем элемент ul. Делаем цикл который на каждой итерации:
1) создает новый элемент li
2) содержимым этого элемента делает текущий элемент массива
3) добавляет элемент в ul как дочерний элемент.
Выводим отсортированный список. Работа сделана.
Возьми jQuery - там работа с DOM многократно проще и логичнее. А уже потом постепенно переползай на "чистый" JS.
Юрий Сысолов
Юрий Сысолов
59 354
Карпов Денис Джиквери это что новый язык учить. Вообще насколько сложно перейти на него. Там похожий синтаксис?
Ну скажем так, я вообще не понимаю, зачем нужно зубрить команды языка программирования. Нужно знать лишь основные, с которыми ты работаешь, а остальные можно загуглить. Ты же не пианист, чтобы без нот играть.
А вообще практика, практика и ещё раз практика.
Поначалу сложно, а затем становится легче.
MG
Mr Goofy
28 648
Игорь Ловчиков в этом вы правы, но этих "основных" тоже немало ;)
хотя, мне кажется, всё приходит с опытом.
Работать, а не зубрить.