[jQuery] Re: .hide and .show div's
> 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
0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home