Javascript.RU

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

indexOf('.png')
делю строку... пример: "name_0.png| name | english text | русский текст";
должна быть таблица.... только вот что получается "Cannot read property 'indexOf' of undefined"... почему так? переписывал много раз, где натупил?
(function createTable() {
    let tbod = document.getElementById('tbod'),
        arr_job = job.split('||');
    for (let i = 0; i < job.length; ++i) {
        let elem_tr = document.createElement('tr'),
            elem_td = '',
            arr_job1 = arr_job[i].split('|');
        for (let j = 0; j < arr_job[i].length; ++j) {
            if (arr_job1[j].indexOf('.png') != -1) {
                elem_td += '<td><img src="images/' + arr_job1[j] + '" alt=""></td>';
            } else {
                elem_td += '<td>' + arr_job1[j] + '</td>';
            }
        }
        elem_tr.innerHTML = elem_td;
        tbod.appendChild(elem_tr);
    }
})();

Последний раз редактировалось prolk, 04.01.2019 в 18:59.
Ответить с цитированием
  #2 (permalink)  
Старый 04.01.2019, 18:46
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

"|| name_0.png| name .... - что строка так и начинается с этого разделителя?
Ответить с цитированием
  #3 (permalink)  
Старый 04.01.2019, 18:48
Интересующийся
Отправить личное сообщение для prolk Посмотреть профиль Найти все сообщения от prolk
 
Регистрация: 15.03.2018
Сообщений: 20

да именно:"name.png | name | english text | русский текст.||name1.png | name | english text | русский текст." и так далее....
сорри первые || отсутствуют

Последний раз редактировалось prolk, 04.01.2019 в 18:51.
Ответить с цитированием
  #4 (permalink)  
Старый 04.01.2019, 18:58
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

arr_job = job.split('||');
for (let i = 0; i < job.length; ++i)

И наверное все таки постфрексный инкремент.
Ответить с цитированием
  #5 (permalink)  
Старый 04.01.2019, 19:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

prolk,
(function createTable() {
    let tbod = document.getElementById('tbod'),
        arr_job = job.split('||');
    for (let i = 0; i < arr_job.length; ++i) {
        let elem_tr = document.createElement('tr'),
            elem_td = '',
            arr_job1 = arr_job[i].split('|');
        for (let j = 0; j < arr_job1.length; ++j) {
            if (arr_job1[j].indexOf('.png') != -1) {
                elem_td += '<td><img src="images/' + arr_job1[j] + '" alt=""></td>';
            } else {
                elem_td += '<td>' + arr_job1[j] + '</td>';
            }
        }
        elem_tr.innerHTML = elem_td;
        tbod.appendChild(elem_tr);
    }
})();
Ответить с цитированием
  #6 (permalink)  
Старый 04.01.2019, 19:03
Интересующийся
Отправить личное сообщение для prolk Посмотреть профиль Найти все сообщения от prolk
 
Регистрация: 15.03.2018
Сообщений: 20

насколько я знаю разницы нет ++i, или i++, но это для for, могу конечно и ошибаться.........
Ответить с цитированием
  #7 (permalink)  
Старый 04.01.2019, 19:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

prolk,
(function createTable() {
    let tbod = document.getElementById('tbod'),
        arr_job = job.split('||');
    for (let i = 0; i < arr_job.length; ++i) {
        if(!arr_job[i].trim()) continue;
        let elem_tr = document.createElement('tr'),
            elem_td = '',
            arr_job1 = arr_job[i].split('|');
    for (let j = 0; j < arr_job1.length; ++j) {
            if (arr_job1[j].indexOf('.png') != -1) {
                elem_td += '<td><img src="images/' + arr_job1[j] + '" alt=""></td>';
            } else {
                elem_td += '<td>' + arr_job1[j] + '</td>';
            }
        }
        elem_tr.innerHTML = elem_td;
        tbod.appendChild(elem_tr);
    }
})();
Ответить с цитированием
  #8 (permalink)  
Старый 04.01.2019, 19:11
Интересующийся
Отправить личное сообщение для prolk Посмотреть профиль Найти все сообщения от prolk
 
Регистрация: 15.03.2018
Сообщений: 20

Спасибо, потерялся в переменных..... для перебора.....буду внимательней
Ответить с цитированием
  #9 (permalink)  
Старый 04.01.2019, 20:03
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от prolk
насколько я знаю разницы нет ++i, или i++, но это для for,
А у вас что иное? Оно в общем что так, что так будет работать, хотя префиксный дает очень небольшой выигрыш, ну это в Си я знаю, как с JS не могу сказать. Главное чтобы не пролететь, если понадобится использовать предыдущее состояние итератора.
Ответить с цитированием
  #10 (permalink)  
Старый 04.01.2019, 20:06
Интересующийся
Отправить личное сообщение для prolk Посмотреть профиль Найти все сообщения от prolk
 
Регистрация: 15.03.2018
Сообщений: 20

спасибо, учту на будущее........
Ответить с цитированием
Ответ



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

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