Javascript.RU

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

Сортировщик списка
Добрый день.

Код http://jsfiddle.net/wy8X9/226/
Не добавляются элементы из списка.
addAllElements: function(){
        var tbody = document.getElementsByTagName("tbody");
        var tr = document.createElement("tr");
        for(var i = 0; i < 3; i++){
           tbody.appendChild("tr"); 
           tr.createTextNode(list.test[i]);
        }     
    }

Еще, хотелось бы, оптимизировать код.
document.getElementById("id").addEventListener("click", function(){
    list.sortById();
});

Если таблица состоит из 10-ти ячеек, замучаюсь копипастить. Как вариант, рассматриваю цикл.
Ответить с цитированием
  #2 (permalink)  
Старый 17.05.2016, 10:51
Профессор
Отправить личное сообщение для Blondinka Посмотреть профиль Найти все сообщения от Blondinka
 
Регистрация: 21.03.2014
Сообщений: 173

Обновила код, но мало что изменилось.
http://jsfiddle.net/VaAlina/wy8X9/235/
Ответить с цитированием
  #3 (permalink)  
Старый 17.05.2016, 10:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Blondinka,
в 5 создайте ячейку, 6 добавьте в ячейку текст, 7 добавьте ячейку в строку, в 5 строке исправьте ошибку поставьте после цикла
Ответить с цитированием
  #4 (permalink)  
Старый 17.05.2016, 11:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Blondinka,
2 строка выберите нужный элемент из списка.
Ответить с цитированием
  #5 (permalink)  
Старый 17.05.2016, 11:13
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Blondinka,

addAllElements: function() {
     var tbody = document.getElementsByTagName("TBODY")[0],
         f = document.createDocumentFragment();
     for (var k = 0; k < list.test.length; k++) {
         var tr = document.createElement("TR");
         for (var i = 0; i < 3; i++) {
             var td = document.createElement("TD"),
             text = document.createTextNode(list.test[k][i]);
             td.appendChild(text);
             tr.appendChild(td);
         }
         f.appendChild(tr);
     }
     tbody.appendChild(f);
 }
Ответить с цитированием
  #6 (permalink)  
Старый 17.05.2016, 11:21
Профессор
Отправить личное сообщение для Blondinka Посмотреть профиль Найти все сообщения от Blondinka
 
Регистрация: 21.03.2014
Сообщений: 173

рони,
почему грустный смайлик? Я пишу. Сейчас так http://jsfiddle.net/VaAlina/wy8X9/236/
Работает не очень. Создала таблицу без ячеек и удивляюсь, почему же она не работает.
Ответить с цитированием
  #7 (permalink)  
Старый 17.05.2016, 12:05
Профессор
Отправить личное сообщение для Blondinka Посмотреть профиль Найти все сообщения от Blondinka
 
Регистрация: 21.03.2014
Сообщений: 173

http://jsfiddle.net/VaAlina/wy8X9/240/ не работает. Возьму ваш код. Он работает.

Последний раз редактировалось Blondinka, 17.05.2016 в 12:07.
Ответить с цитированием
  #8 (permalink)  
Старый 17.05.2016, 12:08
Профессор
Отправить личное сообщение для Blondinka Посмотреть профиль Найти все сообщения от Blondinka
 
Регистрация: 21.03.2014
Сообщений: 173

рони,
спасибо.
Ответить с цитированием
  #9 (permalink)  
Старый 17.05.2016, 13:18
Профессор
Отправить личное сообщение для Blondinka Посмотреть профиль Найти все сообщения от Blondinka
 
Регистрация: 21.03.2014
Сообщений: 173

Доделала.
http://jsfiddle.net/VaAlina/wy8X9/243/
Появился вопрос: "Почему сортировка по названию работает только с reverse() ?"
Ответить с цитированием
  #10 (permalink)  
Старый 17.05.2016, 13:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Blondinka,
потому что не число и надо использовать полную версию сортировки , а не разницу.
если нужно поменяйте a и b местами во 2 строке
sortByName: function() {
    list.test = list.data.sort(function(a, b) {
        a = a[1];
        b = b[1];
        if (a > b) return 1;
        if (a < b) return -1;
        return 0
    });
    alert(list.test.join(", "));
},
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Считывание значения текущего выбранного элемента списка в переменную apomin Элементы интерфейса 1 15.10.2015 19:47
Не работает скрипт отображения списка Konstantine Javascript под браузер 3 18.03.2013 06:00
самозакрывающееся меню в виде списка о_О dimitar Элементы интерфейса 4 20.03.2012 15:27
Динамическое добавление выпадающего списка В IE stepennwolf Internet Explorer 3 04.11.2011 17:36
Заполнить список значениями из динамически созданного выпадающего списка zhuzha Элементы интерфейса 0 17.08.2010 14:40