Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jquery .load() page then parse html

Tags:

jquery

load

I have used the line below in my app. But now I need to parse the html loaded before I show it. Whats the best way to get certain html elements.

$("#div").load("page.html");

Thanks

UPDATED

Now I am using this but having trouble geting the title attribute of a div with the id "div".

function get_title()
{
    $.get("test.html", function(data) {
        var data = $(data);
        var title = $("#div", data).attr("title");

        alert(title);
    });
}

The html in the var data looks like this.

<div id="div" title="title example">
<p>
    Content
</p>
<p>
    Content
</p>
</div>

Thanks again

like image 860
moo Avatar asked Oct 04 '10 15:10

moo


3 Answers

You can use the semi-equivalent expanded version of $.get(), like this:

$.get("page.html", function(data) {
  var data = $(data);
  //do something
  $("#div").html(data);
});

Note that calling .html(data) in this case is just a shortcut for .empty().append(data).


Or, if post-processing is an option, just use the .load() callback, like this:

$("#div").load("page.html", function() {
  $(this).find(".class").remove(); //just an example
});
like image 52
Nick Craver Avatar answered Sep 28 '22 07:09

Nick Craver


Instead of calling .load(), you should call $.get to perform an AJAX request and manually process the response.

like image 44
SLaks Avatar answered Sep 28 '22 06:09

SLaks


jQuery.ajax({
    url:'your_url',
    type:'get',
    dataType:'html',
    success:function(data)
   { 
       var _html= jQuery(data);
       //do some thing with html eg: _html.find('div').addClass('red')
       jQuery('#target').html(_html);
   }
});
like image 25
Praveen Prasad Avatar answered Sep 28 '22 07:09

Praveen Prasad