Я в порядке с использованием JavaScript или JQuery

Я добавил в другой столбец из таблицы базы данных, чтобы получить возвращенный и что я в настоящее время вижу

122461,4876192

Как сейчас у меня 2 записи

Так что с этим шоу

enter image description here

 $.each(alldata.Data, function (index, query) {
    strData += "<td>" + query + "</td>"; 
 }

Это выплевывает 122461, 4876192, как я могу использовать «запрос» для разделения?

Я хочу в конечном итоге сделать это

<td>122461</td><td>4876192</td>
0
user5154099 15 Дек 2015 в 08:40

3 ответа

Лучший ответ

РЕДАКТИРОВАТЬ: изображение, которое вы показали, показывает массив массивов. Причина, по которой вы получаете значения, разделенные запятыми, состоит в том, что запрос переменной на самом деле является массивом, поэтому, когда вы присоединяете его к строке, JS просто перечисляет значения подмассива в формате CSV.

Лично я думаю, что вам даже не нужно использовать jQuery для этой задачи, иногда намного проще использовать пару вложенных циклов for. Вы должны перебрать основной массив, а затем каждый из подмассивов и объединить их внутри <td> задач. После этого вы можете использовать jQuery для всего, что вы хотите сделать с элементами.

var strData = "";
if (allData.Data) {
    for (var i = 0; i < allData.Data.length; i++) {
         if (allData.Data[i]) {
             for (var j = 0; j < allData.Data[i].length; j++) {
                 strData += '<td>' + allData.Data[i][j] + '</td>';
             }
         }
    }
}

Однако, если вы действительно хотите использовать каждую функцию jQuery, вы можете сделать

var strData = "";
if (allData.Data) {
    $.each(allData.Data, function(i, query) {
        // Note this will skip everything that equals to false in JavaScript
        // not just null, for example, "", false, 0, etc...
        if (!query) return;
        $.each(query, function(j, value) {
            // See note above
            if (!value) return;
            strData += '<td>' + value + '</td>';
        });
    });
}

Существует множество сочетаний клавиш, которые вы можете использовать, используя встроенные функции массива, такие как join, как предложено @zan в своем ответе.

РЕДАКТИРОВАТЬ 2: Добавлены нулевые проверки EDIT 3: Добавлены нулевые проверки в jQuery

2
Mr Lister 20 Дек 2015 в 16:50

Попробуй это:

Если запрос является строкой:

$.each(alldata.Data, function (index, query) {
  strData +='<td>'+query.split(',').join('</td><td>')+'</td>';
}

Если Query это массив, тогда используйте это:

$.each(alldata.Data, function (index, query) {
  strData +='<td>'+query.join('</td><td>')+'</td>';
}

Это также будет работать, когда у вас есть более 2 элементов в массиве

0
Afsar 15 Дек 2015 в 06:00

Вам нужно

var strData = ''
$.each(alldata.Data, function (index, query) {
    strData += "<td>" + query.join('</td><td>') + "</td>"; 
 })
 console.log(strData)

Почему это выплевывает 122461,4876192, как мне использовать "запрос" для разделения?

Потому что вы объединяете Array with String

"myString" + [1,2,3,4] + "otherString"

Даст вам этот вывод

"myString1,2,3,4otherString"
0
Harpreet Singh 15 Дек 2015 в 05:59