What happens if you change:
        $("p[class='"+whichClass+"']").show();});
to
        $("p.'"+whichClass+"']").show();});
?

Or what about * selector:

http://docs.jquery.com/Selectors/attributeContains#attributevalue

        //show any straggling, hidden p's with the right class
        $("p[class*='"+whichClass+"']").show();});

In the end you might have to iterate over the divs to find classes.

On Jan 6, 10:34 am, Kyle <[EMAIL PROTECTED]> wrote:
> I'm trying to hide all items tagged with a specific class upon
> clicking on a span with a similar tag.
>
>                 $("#tags span").click(function(){
>                 var whichClass = $(this).attr("class");
>                 //hide all the p's that do not match the class clicked
>                 $("p[class!='"+whichClass+"']").hide();
>                 //show any straggling, hidden p's with the right class
>                 $("p[class='"+whichClass+"']").show();});
>
> <div id="tags">
> <span class="first">First</span>
> <span class="second">Second</span>
> </div>
>
> <div>
> <p class="first">Some text</p>
> <p class="second">Some more text</p>
> <p class="first second">Even more text</p>
> </div>
>
> Clicking first shows the first p, and hides the rest. Clicking second
> shows the second p, and hides the rest. However, each, upon clicking,
> should not hide the third p. It seems that $("p[class!='"+whichClass
> +"']") matches exactly, rather than matching by mere containing.
>
> Any suggestions for how to have the jquery recognize multiple classes?
>
> Thanks

Reply via email to