> Oops. got the selector wrong. It should be:
> $( function()  {
>   $(div[class^=hide-BAT].hide();
> });
> Joe

You still didn't get it right :-)

$("div[class^=Hide-BAT]").hide();


To original poster:

if you want "fast", then you can't beat CSS with jQuery's hide method

have like:

<div class="Hide BAT1">
<div class="Hide BAT1">
.....
<div class="Hide BAT55">

and now the CSS class "Hide" is defined like so:

.Hide { display: none; }


But, I'd suggest really reading into some replies above, you shouldn't
be using class names this way.....  if your <div> needs to be uniquely
identified, then ID is the way to go, and the class name "BAT" would
be used to grab all those uniquely identified <div>'s

so building on that (note: id's are not supposed to start with
numbers, hence the "B"):

<div id="B1" class="Hide">
<div id="B2" class="Hide">
.....
<div id="B55" class="Hide">

so now on page load, it'll see:
.Hide { display: none; }

and not show all 55 <div>'s

want to do something to item 35?

function Action(id) {
   $("#B" + id).doSomething
}

Action("35")

want to do something to all 55 items?

$(".Hide").show()

doesn't that seem easier plus more importantly make more sense?

something like the suggested selector against your current structure

$("div[class^=hide-BAT]").hide();

while it *would work*, you need to understand why it is slow...

- first jQuery walks across the whole entire DOM tree grabbing every
single <div>, and that's whether it's one you are after or not
- then id needs to get every single class name, and do a (relatively
to other methods anyways) slow "end with" operator

Yuck.... and just think if you had 200 of those <div>'s, or 400 !



On Nov 11, 8:58 am, Joe Moore <joe.lynn.mo...@gmail.com> wrote:
> Oops. got the selector wrong. It should be:
>
> $( function()  {
>    $(div[class^=hide-BAT].hide();
>
> });
>
> Joe
>
> On Wed, Nov 11, 2009 at 8:38 AM, Joe Moore <joe.lynn.mo...@gmail.com> wrote:
> > $( function()  {
> >    $(div[class=hide-BAT$].hide();
> > });
>
> > I haven't tested this, but it should work. If not, verify the selector.
>
> > Not sure why you are giving a unique classname to all these elements. If
> > you need it, why not use the I'd attribute?
>
> > Regards,
> > Joe
>
> > On Nov 11, 2009 8:17 AM, "David pr" <davidpric...@gmail.com> wrote:
>
> > Hello,
>
> > Could you help me please. I have a list of hotel which I .hide
> > and .show div's to show more or less info.
>
> > so i have
>
> > <div class="Hide-BAT1 ... >
>
> > to
>
> > <div class="Hide-Bat55 … >
>
> > when the user press a button I use the code
> > var Hcode = $(this).attr("custom");
> >  $('div.Hide-' + Hcode).toggle();
>
> > but when the page loads how do I hide this div automatically ?
>
> > I have used
>
> > for (i = 0; i <= 70; i++)
> > {
> >   $("div.Hide-BAT" + i).hide();
> > }
>
> > But its slow and probably not the best way to do it ?
>
> > Hope you can help and this makes sense.
>
> > Regards
>
> > David

Reply via email to