Raphael
Raphael

Reputation: 8192

How to get a HTML element from a string with jQuery

I'm looking for a way to get a HTML element from a string that contains HTML. Is it possible to use a jQuery selector to do this?

I have a Javascript function that gets an entire page from the server, but I only need one element from that page.

Upvotes: 62

Views: 106823

Answers (5)

hiFI
hiFI

Reputation: 1961

You can use $.find

$(document).ready(function() {
  var htmlVal = "<div><span class='im-here'>Span Value</span></div>";
  var spanElement = $(htmlVal).find("span");
  var spanVal = spanElement.text();

  alert(spanVal);
});

Upvotes: 3

jayson.centeno
jayson.centeno

Reputation: 835

Just use $.filter

var html = "<div><span class='im-here'></span></div>"
var found = $(html).filter(".im-here")

Upvotes: 11

Peter Ajtai
Peter Ajtai

Reputation: 57685

If you are loading a page dynamically from a server then you can target just one element from the loaded page using the following form with .load()

$(selectorWhereToShowNewData).load('pagePath selectorForElementFromNewData');

For example:

$('#result').load('ajax/test.html #container');

Where:
#result is where the loaded page part will be displayed on the current page
ajax/test.html is the URL to which the server request is sent
#container is the element on the response page you want to display. Only that will be loaded into the element #result. The rest of the response page will not be displayed.

Upvotes: 12

Guffa
Guffa

Reputation: 700342

Yes, you can turn the string into elements, and select elements from it. Example:

var elements = $(theHtmlString);
var found = $('.FindMe', elements);

Upvotes: 110

KingErroneous
KingErroneous

Reputation: 989

Just wrap the html text in the $ function. Like

$("<div>I want this element</div>")

Upvotes: 21

Related Questions