Can jQuery Parse HTML Stored in a Variable?

I'm using PHP and an ajax command to take the entire HTML contents of an external web page (via the PHP file_get_contents() command) and passing that HTML into a javascript variable. Once I have the page's HTML contents stored in a variable, can I use jQuery to interact with the contents of that variable, in the same way that jQuery normally interacts with the DOM? In this example, I am trying to search for the existence of certain HTML elements (<div> and <script> tags) with specific ID attributes. Can anyone suggest how I can accomplish this?

Answers:

Answer

If I understand you correctly, you should be able to just pass the variable to the jQuery function and work accordingly.

A quick example with .filter():

$(myHtml).filter('#someid').doStuff();
Answer

Just pass it as a string to the jQuery constructor.

var foo = jQuery('<p><b>asd</b><i>test</i></p>').
alert(foo.find('i').text());
Answer

You can even use native JS to do this. In this case, add the new HTML to a hidden div by using its innerHTML property like this:

document.getElementById('hidden_div_id').innerHTML = myHTML;

Once the new HTML is added, you can walk through nodes using whatever methods you want.

Answer

Just inject it into a hidden div and manipulate what you need from it in there.

var myHTML;//variable with html from php

var $hiddenDIV = $('<div></div>').hide().appendTo('body').html(myHTML);
/*Now you can traverse the contents of $hiddenDIV.
 * If you need to get the contents back:
 */ 
var newHTML = $hiddenDIV.html();
Answer

Yes. And even if that is not available you could make an invisible div and then parse it there.

Tags

Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.