Reputation: 8192
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
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
Reputation: 835
Just use $.filter
var html = "<div><span class='im-here'></span></div>"
var found = $(html).filter(".im-here")
Upvotes: 11
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
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
Reputation: 989
Just wrap the html text in the $ function. Like
$("<div>I want this element</div>")
Upvotes: 21