hi all.  i am using ajax request and i am having to use a supid
hackish way to parse the dom so i thought i would ask if there was a
better way to do it...

below i explain what i have done - but what i want to do is

1) make an ajax request that loads a different webpage and put that
into a variable called "page"
2) parse the "page" to get particular elements of the dom like this
     page.getElement('myelement')

this is the dumb solution i came up with ....

i have a function that starts like,

                function(e,elm,index,grp){
                        this.request = e.href
                        this.fireEvent("pageRequest")
                        var req = new Request({
                                url: e.href,
                                onSuccess: function(htmlstring) {
                                        var newpage = new Element('div',{id: 
'ajaxholder'})
                                        this.page = 
newpage.set('html',htmlstring)
......

the important part is that that an ajax request is made and on success
i pass the html-string that is returned into a div and pass that to a
variable named "page".

then to parse then i parse the dom by doing something annoying like...

menu.page.getChildren('div.center')[0].getChildren('div#box')
[0].getChildren('div#top')[0]

where "menu" is the instance of the class containing the above
function and the "page" variable.

the page being loaded has all the headers and such of a new page (this
is important because i want it to degrade nicely if javascript is
turned off).

so esential i have a div that looks like

<div id="ajaxholder"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd";>
<html....

obviously this is dumb.

i really want to be able to parse html in the normal way... ie
menu.page.getElement('top')

i am assuming this is some standard thing i am just missing.

thanks for the help.
brook

Reply via email to