Building Table Rows from AJAX Response (JSON) Using jQuery

Nov 21, 2025 · Programming · 9 views · 7.8

Keywords: jQuery | AJAX | JSON | Dynamic Tables | DOM Manipulation

Abstract: This article provides an in-depth exploration of processing JSON data from AJAX responses and dynamically generating HTML table rows with jQuery. Through analysis of common error patterns, it thoroughly examines the proper usage of $.each() loops, DOM element creation, and .append() method. Complete code examples are provided, comparing string concatenation and DOM manipulation approaches, while discussing key technical aspects including JSON parsing, event binding, and performance optimization.

Introduction

In modern web development, dynamic data presentation is a common requirement. AJAX technology allows us to asynchronously retrieve data from servers, while jQuery provides concise APIs to process this data and update page content. This article focuses on dynamically creating table rows from JSON-formatted AJAX responses.

Problem Analysis

In the original problem, the developer attempted to create table rows from JSON data using jQuery but encountered issues where only the last data item was displayed. The key errors involved using the .html() method instead of .append(), and improper handling of JSON string parsing.

Core Solution

JSON Data Parsing

First, the JSON string needs to be converted to a JavaScript object:

var response = $.parseJSON(response);

Or using modern browser native methods:

var response = JSON.parse(response);

DOM Element Creation and Appending

The correct implementation uses the .append() method:

$.each(response, function(i, item) {
    var $tr = $('<tr>').append(
        $('<td>').text(item.rank),
        $('<td>').text(item.content),
        $('<td>').text(item.UID)
    ).appendTo('#records_table');
});

Alternative Approaches Comparison

String Concatenation Method

Another common implementation uses string concatenation:

var trHTML = '';
$.each(response, function(i, item) {
    trHTML += '<tr><td>' + item.rank + '</td><td>' + item.content + '</td><td>' + item.UID + '</td></tr>';
});
$('#records_table').append(trHTML);

Method Comparison

The DOM manipulation approach better aligns with jQuery's design philosophy, offering improved readability and maintainability. The string concatenation method may have slight performance advantages but sacrifices code clarity.

Error Pattern Analysis

Incorrect .html() Usage

Main issues in the original code:

// Incorrect example
$('<tr>').html(
    $('td').text(item.rank),
    $('td').text(item.content),
    $('td').text(item.UID)
)

Here, the .html() method overwrites previous content, resulting in only the last element being preserved.

Best Practices

Complete AJAX Handling

In practical applications, comprehensive error handling should be included:

$.ajax({
    url: 'your-api-endpoint',
    type: 'GET',
    dataType: 'json',
    success: function(response) {
        // Clear existing content (optional)
        $('#records_table').empty();
        
        // Process data
        $.each(response, function(i, item) {
            $('<tr>').append(
                $('<td>').text(item.rank),
                $('<td>').text(item.content),
                $('<td>').text(item.UID)
            ).appendTo('#records_table');
        });
    },
    error: function(xhr, status, error) {
        console.error('AJAX request failed:', error);
    }
});

Performance Optimization Considerations

For large datasets, using document fragments can reduce DOM operation frequency:

var $fragment = $(document.createDocumentFragment());
$.each(response, function(i, item) {
    var $tr = $('<tr>').append(
        $('<td>').text(item.rank),
        $('<td>').text(item.content),
        $('<td>').text(item.UID)
    );
    $fragment.append($tr);
});
$('#records_table').append($fragment);

Security Considerations

When handling user-provided data, XSS attack prevention is crucial. Using .text() method instead of .html() automatically escapes HTML special characters, providing basic security protection.

Conclusion

Building table rows dynamically from AJAX responses using jQuery is a common but error-prone scenario. The key lies in proper understanding of DOM manipulation method selection and JSON data processing. By employing the .append() method and appropriate JSON parsing, efficient and maintainable dynamic table implementations can be created.

Copyright Notice: All rights in this article are reserved by the operators of DevGex. Reasonable sharing and citation are welcome; any reproduction, excerpting, or re-publication without prior permission is prohibited.