[jQuery] Xpath and tab selection

2006-11-02 Thread radius

So I have a tabbed navigation system, and I am using jquery to
auto-select the current tab.
Here's the html:


ul id=main_nav
  li /services/ SERVICES /li
  li /store/ STORE /li
  li /about-us/ ABOUT US /li
  li /gallery/ GALLERY /li
  li /press/ PRESS /li
/ul


Here's my jQuery code (adapted from
http://leftlogic.com/info/articles?id=1):


if (location.pathname.substring(1)) {
   $('#main_nav [EMAIL PROTECTED]' + location.pathname.substring(1) +
']').parent().attr('id', 'current');
}

I'm using parent() so that the id gets applied to the 'li' element and
not the 'a' element.

All of this works. However, I'm unclear about a couple of things:

First, why is the dollar sign $ necessary in the xpath statement? i've
seen no documentation on it, and when i try it without the dollar sign,
it doesnt work.

Second, Sometimes I have a url like: /about-us/4/3 and my jQuery
statement fails because the href != location.pathname.
How can i rewrite this statement so that it searches for the href value
in the location.pathname value and applies the id to the matching
string?

Thanks in advance,
dd
-- 
View this message in context: 
http://www.nabble.com/Xpath-and-tab-selection-tf2563069.html#a7143657
Sent from the JQuery mailing list archive at Nabble.com.


___
jQuery mailing list
discuss@jquery.com
http://jquery.com/discuss/


Re: [jQuery] Xpath and tab selection

2006-11-02 Thread Brian Miller
Darius,

$= means attribute ends with.  Check out
http://jquery.com/docs/Base/Expression/CSS/ , the Supported, but
different section.

Taking a close look at the selection documentation might also help you
with item #2 a bit.

You're going to have to figure out how to text-match your relative URL
with the absolute URL that will be in location.pathname using plain old
regular expressions.

Keep in mind that IE automatically converts relative URLs to absolute ones
in memory, while the other browsers don't.  This may affect your results.

- Brian


 So I have a tabbed navigation system, and I am using jquery to
 auto-select the current tab.
 Here's the html:


 ul id=main_nav
   li /services/ SERVICES /li
   li /store/ STORE /li
   li /about-us/ ABOUT US /li
   li /gallery/ GALLERY /li
   li /press/ PRESS /li
 /ul


 Here's my jQuery code (adapted from
 http://leftlogic.com/info/articles?id=1):


 if (location.pathname.substring(1)) {
$('#main_nav [EMAIL PROTECTED]' + location.pathname.substring(1) +
 ']').parent().attr('id', 'current');
 }

 I'm using parent() so that the id gets applied to the 'li' element and
 not the 'a' element.

 All of this works. However, I'm unclear about a couple of things:

 First, why is the dollar sign $ necessary in the xpath statement? i've
 seen no documentation on it, and when i try it without the dollar sign,
 it doesnt work.

 Second, Sometimes I have a url like: /about-us/4/3 and my jQuery
 statement fails because the href != location.pathname.
 How can i rewrite this statement so that it searches for the href value
 in the location.pathname value and applies the id to the matching
 string?

 Thanks in advance,
 dd
 --
 View this message in context:
 http://www.nabble.com/Xpath-and-tab-selection-tf2563069.html#a7143657
 Sent from the JQuery mailing list archive at Nabble.com.


 ___
 jQuery mailing list
 discuss@jquery.com
 http://jquery.com/discuss/




___
jQuery mailing list
discuss@jquery.com
http://jquery.com/discuss/


Re: [jQuery] Xpath and tab selection

2006-11-02 Thread radius

Thanks a bunch for that link, Brian. I really did search the documentation,
and I feel crazy for missing that rather obvious link from the XPath
section.

I ended up going the less-than-elegant route and breaking out of jQuery to
use the JS match() function, but it works nicely:

if (location.pathname.substring(1)) {
$('#main_nav').find('a').each(
function() {
if(location.pathname.match( $(this).attr('href') ) )
$(this).parent().attr('id', 'current');

});
}


Cheers!

dd


Citrus wrote:
 
 Darius,
 
 $= means attribute ends with.  Check out
 http://jquery.com/docs/Base/Expression/CSS/ , the Supported, but
 different section.
 
 Taking a close look at the selection documentation might also help you
 with item #2 a bit.
 
 You're going to have to figure out how to text-match your relative URL
 with the absolute URL that will be in location.pathname using plain old
 regular expressions.
 
 Keep in mind that IE automatically converts relative URLs to absolute ones
 in memory, while the other browsers don't.  This may affect your results.
 
 - Brian
 
 
 So I have a tabbed navigation system, and I am using jquery to
 auto-select the current tab.
 Here's the html:


 ul id=main_nav
   li /services/ SERVICES /li
   li /store/ STORE /li
   li /about-us/ ABOUT US /li
   li /gallery/ GALLERY /li
   li /press/ PRESS /li
 /ul


 Here's my jQuery code (adapted from
 http://leftlogic.com/info/articles?id=1):


 if (location.pathname.substring(1)) {
$('#main_nav [EMAIL PROTECTED]' + location.pathname.substring(1) +
 ']').parent().attr('id', 'current');
 }

 I'm using parent() so that the id gets applied to the 'li' element and
 not the 'a' element.

 All of this works. However, I'm unclear about a couple of things:

 First, why is the dollar sign $ necessary in the xpath statement? i've
 seen no documentation on it, and when i try it without the dollar sign,
 it doesnt work.

 Second, Sometimes I have a url like: /about-us/4/3 and my jQuery
 statement fails because the href != location.pathname.
 How can i rewrite this statement so that it searches for the href value
 in the location.pathname value and applies the id to the matching
 string?

 Thanks in advance,
 dd
 --
 View this message in context:
 http://www.nabble.com/Xpath-and-tab-selection-tf2563069.html#a7143657
 Sent from the JQuery mailing list archive at Nabble.com.


 ___
 jQuery mailing list
 discuss@jquery.com
 http://jquery.com/discuss/

 
 
 
 ___
 jQuery mailing list
 discuss@jquery.com
 http://jquery.com/discuss/
 
 

-- 
View this message in context: 
http://www.nabble.com/Xpath-and-tab-selection-tf2563069.html#a7145094
Sent from the JQuery mailing list archive at Nabble.com.


___
jQuery mailing list
discuss@jquery.com
http://jquery.com/discuss/