This problem is resolved in jQuery SVN. It'll be included in jQuery 1.1.3 (which should be coming out this weekend).
--John On 5/16/07, billhowe <[EMAIL PROTECTED]> wrote:
The following script throws the error this.getElementsByTagName is not a function using the current jquery release. $("//tr").each(function(i) { f = $("//td", this).text(); alert(f); }); The problem appears to be in lines 869-880, where jQuery assumes that an XPath expression that leads with "//" or "/" is always evaluated in a document context rather than a node context. // Handle the common XPath // expression if ( !t.indexOf("//") ) { context = context.documentElement; t = t.substr(2,t.length); // And the / root expression } else if ( !t.indexOf("/") ) { context = context.documentElement; t = t.substr(1,t.length); if ( t.indexOf("/") >= 1 ) t = t.substr(t.indexOf("/"),t.length); } "documentElement" is undefined for a DOM node. Do these blocks need to be present? Is there a reason that the descendant axis should not be evaluated in a node context? -------------------------------- Cut-and-paste example: <head> <script type="text/javascript" src="http://jquery.com/src/jquery-latest.pack.js"> </script> <script type="text/javascript"> $(document).ready(function() { $("//tr").each(function(i) { f = $("//td", this).text(); alert(f); }); }); </script> </head> <body> <table><tr><td>f1</td><td>f2</td></tr></table> </body> -- View this message in context: http://www.nabble.com/Descendant-axis-with-node-context-tf3767593s15494.html#a10651129 Sent from the JQuery mailing list archive at Nabble.com.