Skip to content

jQuery Load

The jQuery .load() method provides a simple way to fetch HTML from a server and inject it into a selected element.

It fetches data (usually HTML) from a specified URL and places the returned content directly into the HTML of the matched element(s), replacing any existing content.

Basic Syntax:

`$(selector).load(URL, [data], [callback]);`
  • URL (Required): A string containing the URL to request.
  • data (Optional): A plain object or string sent to the server with the request. If an object is provided, the request method becomes POST; otherwise, it’s GET.
  • callback (Optional): A function executed after the request completes. It receives three arguments: responseTxt, statusTxt, and xhr.

Assume you have a file named content/partial.html with the following content:

<h2>Latest News</h2>
<p id="news-item-1">This is the first news item.</p>
<p>This is the second news item.</p>

To load the entire content of content/partial.html into a <div> with id="target-div":

$(function() {
$("#load-button").on('click', function() {
$("#target-div").load("content/partial.html");
});
});

You can load only a part of the HTML document by appending a jQuery selector to the URL, separated by a space. This selects the fragment after the full page is loaded.

To load only the paragraph with id="news-item-1" from content/partial.html:

$(function() {
$("#load-fragment-button").on('click', function() {
// Note the space between the URL and the selector
$("#target-div").load("content/partial.html #news-item-1");
});
});

The callback function is useful for handling completion, especially for checking success or failure.

Callback Parameters:

  • responseTxt: The returned data (string).
  • statusTxt: A string describing the status (e.g., “success”, “error”, “notmodified”, “timeout”).
  • xhr: The jqXHR object (a superset of the native XMLHttpRequest object).

Example checking status in the callback:

$(function() {
$("#load-with-callback-button").on('click', function() {
$("#target-div").load("content/partial.html", function(responseTxt, statusTxt, xhr) {
if (statusTxt === "success") {
alert("External content loaded successfully!");
} else if (statusTxt === "error") {
alert("Error: " + xhr.status + " " + xhr.statusText);
}
});
});
});

Modern Alternatives: $.get, $.post, $.ajax, and fetch

Section titled “Modern Alternatives: $.get, $.post, $.ajax, and fetch”

While .load() is convenient for directly injecting HTML, it’s less flexible than other AJAX methods.

  • $.get() and $.post(): Better for requests where you need to process the data (JSON, XML, text) before displaying it, or handle errors more robustly using Promises (.done(), .fail()).
  • $.ajax(): The most configurable jQuery AJAX method, offering fine-grained control over the request.
  • fetch API: The modern, native JavaScript standard for making network requests. It uses Promises and is generally preferred in non-jQuery or modern JS projects.

Consider using these alternatives when you need more control than .load() provides, especially when dealing with data formats other than HTML or requiring complex error handling.

For a complete overview of all jQuery AJAX methods and options, refer to the official jQuery AJAX documentation.