Создание селектора Jquery динамически

0

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

function loadTable() {
    $.getJSON( 'sort.php', function( data ) {
        $.each( data, function( i, val ) {
            $('#most_active tr:eq(i)').after(
                '<tr>'+
                    '<td>'+val.value1+'</td>'+
                    '<td>'+val.value2+'</td>'+
                    '<td>'+val.value3'</td>'+
                    '<td>'+val.data+'</td>'+
                '</tr>'
            );
        });
    });
}

Если я попробую этот второй, используя 0 вместо "i", я получаю все значения, но в неправильном порядке, последние в JSON становятся первыми в таблице.

function loadTable() {
    $.getJSON( 'sort.php', function( data ) {
        $.each( data, function( i, val ) {
            $('#most_active tr:eq(0)').after(
                '<tr>'+
                    '<td>'+val.value1+'</td>'+
                    '<td>'+val.value2+'</td>'+
                    '<td>'+val.value3'</td>'+
                    '<td>'+val.data+'</td>'+
                '</tr>'
            );
        });
    });
}

Любое предложение для правильной загрузки и заполнения таблицы и в том же порядке, что и вектор JSON?

благодаря

Часть кода, связанная с таблицей

<table id="most_activeAP" class="table table-hover">
    <thead>
        <tr>
            <th>Name</th>
            <th>Value</th>
            <th>Value</th>
            <th>Time</th>
        </tr>
    </thead>
    <tbody></tbody>
</table>
  • 1
    Я пометил ваш вопрос как JavaScript, так как вы, похоже, ничего не спрашиваете о PHP.
  • 0
    опубликовать некоторые из ваших данных, или, по крайней мере, его точную структуру.
Показать ещё 1 комментарий
Теги:

2 ответа

0
Лучший ответ

Лучше всего использовать функцию.eq()

function loadTable() {
    $.getJSON( 'sort.php', function( data ) {
        $.each( data, function( i, val ) {
            $('#most_active tr').eq(i).after(
                '<tr>'+
                    '<td>'+val.value1+'</td>'+
                    '<td>'+val.value2+'</td>'+
                    '<td>'+val.value3'</td>'+
                    '<td>'+val.data+'</td>'+
                '</tr>'
            );
        });
    });
}

Это также означает, что вы можете создать список элементов один раз и повторно использовать его:

function loadTable() {
    $.getJSON( 'sort.php', function( data ) {
        var $mostActiveRows = $('#most_active tr');
        $.each( data, function( i, val ) {      
            $mostActiveRows.eq(i).after(
                '<tr>'+
                    '<td>'+val.value1+'</td>'+
                    '<td>'+val.value2+'</td>'+
                    '<td>'+val.value3'</td>'+
                    '<td>'+val.data+'</td>'+
                '</tr>'
            );
        });
    });
}

Эта вторая версия будет немного более эффективной (немного менее расточительной).

  • 0
    спасибо это сработало также.
0

вы пробовали создать селектор, как показано ниже...

function loadTable()
{
    $.getJSON( 'sort.php', function( data )
    {
        $.each( data, function( i, val )
        {
            $('#most_active tr:eq(' + i + ')').after('<tr><td>'+val.value1+'</td><td>'+val.value2+'</td><td>'+val.value3'</td><td>'+val.data+'</td></tr>');
        });
    });
}
  • 0
    Большое спасибо, это работает. Была ли моя ошибка, я забыл управлять «я» как переменная

Ещё вопросы

Сообщество Overcoder
Наверх
Меню