Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.08.2015, 15:58   #1
Bayern_M
Форумчанин
 
Регистрация: 18.03.2015
Сообщений: 114
По умолчанию Уложить значение в ячейку таблицы

Здравствуйте!
Осваиваю потихоньку javascript, но пока все получается не сразу Прошу направить на пусть истинный

Есть таблица с id. Таблица содержит 4 строки, столбцы которой помечены с помощью class ("val", "pz" и тд).
Используя библиотеку d3.js, селектом получаю таблицу. Затем получаю массивы по классам "val" и тд
Запускаю сторонний свой баш скрипт, который возвращает мне json данные (массив объектов). Пытаюсь уложить данные json в ячейки таблицы в цикле, но firebug мне выдает ошибку

TypeError: val[i].html is not a function

val[i].html(text.bd[i].val);

Менял атрибут html и на innerHTML, и на text - ничего не работает. Подскажите правильный атрибут в моем случае, чтобы получить доступ к ячейке.

Код:
<table id = "shmid2260993">
            <tr>
                <td>Блок детектирования, ID</td>
                <td>Текущее значение</td>
                <td>Предупредительная уставка</td>
                <td>Аварийная уставка</td>
                <td>Статус</td>
            </tr>
            <tr>
                <td>1</td>
                <td class = "val">0.087</td>
                <td class = "pz">0.23</td>
                <td class = "az">0.3</td>
                <td class = "status">0</td>
            </tr>
            <tr>
                <td>2</td>
                <td class = "val">0.087</td>
                <td class = "pz">0.23</td>
                <td class = "az">0.3</td>
                <td class = "status">0</td>
            </tr>
            <tr>
                <td>3</td>
                <td class = "val">0.087</td>
                <td class = "pz">0.23</td>
                <td class = "az">0.3</td>
                <td class = "status">0</td>
            </tr>
            <tr>
                <td>4</td>
                <td class = "val">0.087</td>
                <td class = "pz">0.23</td>
                <td class = "az">0.3</td>
                <td class = "status">0</td>
            </tr>
        </table>
        <script type="text/javascript" src="http://d3js.org/d3.v3.min.js" charset="utf-8">
        </script>
        <script type="text/javascript">
            var list = [{ value: null, next:null}, {value: null, next: null}];
            list[0] = {value: 2228224, next: list[1]};
            list[1] = {value: 2260993, next: list[0]};
            var node = list[0];

            var val;
            var pz;
            var az;
            var st;
            var i;

            setInterval(function() {
                d3.json("./cgi-bin/script1.sh?shmid=" + node.value, function(error, text){
                    if (error) return console.warn(error);
                    
                    table = d3.select("#shmid" + node.value);
                    val = table.select(".val");
                    pz = table.select(".pz");
                    az = table.select(".az");
                    st = table.select(".status");

                    for (i=0; i<4; i++){

                    val[i].html(text.bd[i].val);
                    pz[i].html(text.bd[i].pz);
                    az[i].html(text.bd[i].az);
                    st[i].html(text.bd[i].status);
                    }
                    node = node.next;
                })
            }, 1000);
            
        </script>
Bayern_M вне форума Ответить с цитированием
Старый 10.08.2015, 16:18   #2
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

свойство
Код:
val[i].innerHTML = text.bd[i].val
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 10.08.2015, 16:25   #3
Bayern_M
Форумчанин
 
Регистрация: 18.03.2015
Сообщений: 114
По умолчанию

Цитата:
Сообщение от Naive Посмотреть сообщение
свойство
Код:
val[i].innerHTML = text.bd[i].val
Спасибо большое, что уделили внимание!
Но firebug говорит, что в таком случае val[i] is undefined.

Но ваш подход, мне кажется правильным.

Получается, что селект по таблице не возвращает массива val-ов?
Bayern_M вне форума Ответить с цитированием
Старый 10.08.2015, 16:45   #4
Bayern_M
Форумчанин
 
Регистрация: 18.03.2015
Сообщений: 114
По умолчанию

Нашел недочет - нужно использовать не просто select, а selectAll.
Но пока не работает

Код:
            setInterval(function() {
                d3.json("./cgi-bin/script1.sh?shmid=" + node.value, function(error, text){
                    if (error) return console.warn(error);
                    
                    table = d3.select("#shmid" + node.value);
                    val = table.selectAll(".val");
                    pz = table.selectAll(".pz");
                    az = table.selectAll(".az");
                    st = table.selectAll(".status");

                    for (i=0; i<4; i++){

                    val[i].innerHTML = text.bd[i].val;
                    pz[i].innerHTML = text.bd[i].pz;
                    az[i].innerHTML = text.bd[i].az;
                    st[i].innerHTML = text.bd[i].status;
                    }
                    node = node.next;
                })
            }, 1000);
Bayern_M вне форума Ответить с цитированием
Старый 10.08.2015, 17:17   #5
Bayern_M
Форумчанин
 
Регистрация: 18.03.2015
Сообщений: 114
По умолчанию

Цитата:
Сообщение от Bayern_M Посмотреть сообщение
Нашел недочет - нужно использовать не просто select, а selectAll.
Но пока не работает

Код:
            setInterval(function() {
                d3.json("./cgi-bin/script1.sh?shmid=" + node.value, function(error, text){
                    if (error) return console.warn(error);
                    
                    table = d3.select("#shmid" + node.value);
                    val = table.selectAll(".val");
                    pz = table.selectAll(".pz");
                    az = table.selectAll(".az");
                    st = table.selectAll(".status");

                    for (i=0; i<4; i++){

                    val[i].innerHTML = text.bd[i].val;
                    pz[i].innerHTML = text.bd[i].pz;
                    az[i].innerHTML = text.bd[i].az;
                    st[i].innerHTML = text.bd[i].status;
                    }
                    node = node.next;
                })
            }, 1000);

Разобрался
Bayern_M вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как занести значение в ячейку s-posad Microsoft Office Excel 15 14.02.2015 19:51
Запомнить внесенное значение в ячейку DGV King_Of_Arthur C# (си шарп) 0 03.07.2014 12:34
значение листа вставить в ячейку Trinadtsat Microsoft Office Excel 3 01.05.2014 19:06
Access ограничить значение поля таблицы значениями полей другой таблицы Сергей089 Microsoft Office Access 10 08.12.2010 02:22
Как занести значение в ячейку segail Microsoft Office Excel 1 10.07.2009 20:00