actually i  learned how to add the (......., this)  from another post on this list

i struggeled at first learning how to use "THIS"  when creating a selector

I always wanted it to work like a parent child regular selector and kept trying a lot of things like:
$(this "li").hide();

or $((this)."li").hide()

or $("(this) li").hide()

of course none of the variations worked. Finally when find(), or children() sunk in it was far more intuitive. Then recently when $("selector",this) came up I realized it saved a bit more virtual ink. >From a chaining perspective it's easier to read the extra step of find() or children() and that is likely why don't see it in docs much


Matthew wrote:
Sweet, thanks Charlie...

Charlie, how did you find out about: $("td:first",this)?  In the
jquery docs i havent seen the ",this" I'm assuming that adding that
filters out the first td of each tr, I'd be interesting in knowing
more about how to filter things. Looks like I could make most of my
code way more efficient.

On Jun 24, 11:35 am, MikeyJ <m.en...@gmail.com> wrote:
  
No prob! Looks like you are real close to what Charlie just posted
that works great, except that it applies to every table on the page.
Once I added the table id it was perfect!

$("table#mytableid tr").each(function() {
  $("td:first",this).attr("align","right");

});

On Jun 24, 11:31 am, Matthew <mvbo...@gmail.com> wrote:

    
sorry about the error, replace "break;" with "return false;" Yeah,
ignore the last code then. Try this, I'm trying to find a way of doing
this cleanly so I guess we are both learning together haha
      
$("table tr").each(function(){
             $(this).children(":first").attr("attribute","value");
      
});
      
On Jun 24, 11:14 am, MikeyJ <m.en...@gmail.com> wrote:
      
Looks like your first two offerings throw this error in Firebug:
        
"unlabeled break must be inside loop or switch"
        
Your last example works but it only works on the first TR and it
affects both TD's in that TR. ??
        
On Jun 24, 10:59 am, Matthew <mvbo...@gmail.com> wrote:
        
yeah haha let me re-do:
          
$("table#id tr:first-child").each(function(){
                           $(this).attr("attribute","value");
          
});
          
try that. I am thinking that the tr:first-child should return the TD
for every TR in the table. Im not sure how this will work if you have
nested tables. I'm at work so I cant spend the time to test the code
before hand.
          
On Jun 24, 10:50 am, MikeyJ <m.en...@gmail.com> wrote:
          
Thx Matthew! Great explanation.
            
I probably should have worded one thing a bit differently...I'd like
to set this attribute for "the first TD in each TR for EVERY TR in an
entire table". I'm sure this changes things a tiny bit?
            
Mike
            
On Jun 24, 10:43 am, Matthew <mvbo...@gmail.com> wrote:
            
when you use this code $("tr td") it would create an array of all
those td's in the tr. So then we just need to cycle through the first
two and set the attribute then break the cycle.
              
var counter = 0;
$("tr td").each(function(){
       $(this).attr("attribute","value");
       counter++;
        if(counter > 1) { break; } // after the first two td's stop
the iteration through all the td's.
              
});
              
You can be more specific with what tr you use or you could use a table
with a certain class or id:
              
$("table.class tr td").each(........
              
hope this helps.
              
On Jun 24, 10:26 am, MikeyJ <m.en...@gmail.com> wrote:
              
Hi All,
                
I'd like to set the align attribute of only the first TD in a TR for
an entire table but am not sure how to address them all in one go.
Probably an Nth child thing or similar but not sure!
                
Thx,
Mike
                

  

Reply via email to