Я хотел бы отсортировать несколько div в порядке возрастания на основе их идентификатора данных. Как я могу это сделать?
<div class = "container" data-id = "1000">
<div id = "H1"></div>
<div id = "sub">sub 1</div>
<div id = "sub">sub 2</div>
</div>
<div class = "container" data-id = "3000">
<div id = "H1"></div>
<div id = "sub"></div>
<div id = "sub"></div>
</div>
<div class = "container" data-id = "2000">
<div id = "H1"></div>
<div id = "sub"></div>
<div id = "sub"></div>
</div>
id более одного раза на странице. id всегда должен быть уникальным!Также container является недопустимым именем атрибута для div элементов. Это делает ваш HTML недействительным.
Хм... "контейнер div" должен быть div id :-D
Имя раздела — это переменная, которую я получаю из базы данных. Вот так: db.each("SELECT DISTINCT chapname FROM Chapters ORDER BY chaporder", function(err,chapters) { if (err) {console.info('ERROR!', err);} else { // create variable let chapname = []; // push callback 'chapters' into variable 'chapname' chapname.push(chapters.chapname); // console.info(row);



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я нашел решение своей проблемы некоторое время назад:
function sortOut() {
// get the classname chapcontainer
var classname = document.getElementsByClassName('container');
// create a variable and put the classes it into an array.
var divs = [];
for (var i = 0; i < classname.length; ++i) {
divs.push(classname[i]);
}
// Sort the divs based on data-id.
divs.sort(function(a, b) {
return +a.getAttribute("data-id") - +b.getAttribute("data-id");
});
};
divs.sort делает свое дело. Подробнее об этой функции можно узнать здесь:
Дополнительная информация поможет. Например, откуда взялась переменная
chapName?