Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   indexOf('.png') (https://javascript.ru/forum/dom-window/76366-indexof-%27-png%27.html)

prolk 04.01.2019 18:35

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);
    }
})();

laimas 04.01.2019 18:46

"|| name_0.png| name .... - что строка так и начинается с этого разделителя?

prolk 04.01.2019 18:48

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

laimas 04.01.2019 18:58

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

И наверное все таки постфрексный инкремент.

рони 04.01.2019 19:00

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);
    }
})();

prolk 04.01.2019 19:03

насколько я знаю разницы нет ++i, или i++, но это для for, могу конечно и ошибаться.........

рони 04.01.2019 19:08

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);
    }
})();

prolk 04.01.2019 19:11

Спасибо, потерялся в переменных..... для перебора.....буду внимательней:) :) :) :) :) :) :) :) :) :victory:

laimas 04.01.2019 20:03

Цитата:

Сообщение от prolk
насколько я знаю разницы нет ++i, или i++, но это для for,

А у вас что иное? Оно в общем что так, что так будет работать, хотя префиксный дает очень небольшой выигрыш, ну это в Си я знаю, как с JS не могу сказать. Главное чтобы не пролететь, если понадобится использовать предыдущее состояние итератора.

prolk 04.01.2019 20:06

спасибо, учту на будущее........


Часовой пояс GMT +3, время: 09:19.