Steve,

That's a great explanation of the difference between these two methods. Thanks so much! I'll probably use the first method to begin with. It is easier for me to read, but that's probably because of my lack of understanding anything about xpath. Something else I'll have to do some reading on.

Thanks again! :o)
Chris

Stephen Woodbridge wrote:
Chris,

I think you would need to test for performance differences unless John 
or one of the other guys with more clue have some insight.

This works by creating a jquery collection of all td objects and using 
each to iterate through them, then uses the if to filter them.

$('td').each(function() {
      if (this.status == 'enabled')
          $(this).click(function() {
              // do something
          });
});

Where as:

$("[EMAIL PROTECTED]'enabled']").click()

uses the xpath syntax to create a collection of just those td's that 
have the attribute state='enabled' set on them, then applies the click() 
method to each of them.

The first is probably a little more readable if you are new to jquery 
and requires you to write more code. The later is probably more 
jQuery-ish and I guessing it is a little faster, but I have not done any 
testing and really have no facts to support the guess.

-Steve

Christopher Jordan wrote:
  
  Thanks Klaus!

How does this syntax differ from other suggested syntax:

$("[EMAIL PROTECTED]'enabled']").click()

I'm curiout which is preferred, or faster. They both look clean enough to me.

Chris



Klaus Hartl wrote:
    
Christopher Jordan schrieb:
  
      
Hi folks,

I have a table that represents a calendar. The user will be able to 
select multiple dates from the calendar, but cannot select dates in the 
past. I've written this code before using all _javascript_ and what I did 
was add several additional pieces of data to the td tag other than ID or 
CLASS. I added "state", "index", "status" and a few others. I accessed 
these through f.calendarid.state... that kind of thing.

So I'm wanting to apply an event (probably several: click, mouseover, 
mouseout) to only those td tags that have their state  set to "enabled". 
Not to *all* tds and not even to all tds with a certain class. ID alone 
won't work. Is there a way to do this using jQuery? Something like: 
$("td" status).click()... or whatever.

Thanks,
Chris
    
        
Hi Christopher, this could work:

$('td').each(function() {
     if (this.status == 'enabled')
         $(this).click(function() {
             // do something
         });
});



-- Klaus

_______________________________________________
jQuery mailing list
[email protected] <mailto:[email protected]>
http://jquery.com/discuss/



  
      
------------------------------------------------------------------------

_______________________________________________
jQuery mailing list
[email protected]
http://jquery.com/discuss/
    


_______________________________________________
jQuery mailing list
[email protected]
http://jquery.com/discuss/



  
_______________________________________________
jQuery mailing list
[email protected]
http://jquery.com/discuss/

Reply via email to