Both of those would work as solutions to this problem.

However, I'd still really like to find out if there's a way to get a
list (array?) of all of the classes that are currently attached to an
element and loop through them.

It doesn't dound like it should be so hard.

Jon

On Apr 16, 3:50 pm, "Jonathan Vanherpe (T & T NV)" <jonat...@tnt.be>
wrote:
> I'm not really sure why you're not just doing this in pure css.
>
> .button {
>         padding-right: 20px;
>         background-position: center right;
>         background-repeat: no-repeat;}
>
> .iconstar       {       background-image: url(star.png);}
> .iconplus       {       background-image: url(plus.png);}
>
> Am I missing something here?
>
> Jonathan
>
>
>
> David wrote:
> > The problem I see is what happens when there is more than one class?
> > Your icon call may not be the first class. in which case you would not
> > have selected it. But it was still supposed to get an icon. Would it
> > be possible to give the divs that are supposed to receive the icons a
> > generic class then use an attribute to define what icons it is
> > supposed to have. You could even reduce the amount of code that you
> > have to output.
>
> > <div class="icon button" img="Star"></div>
>
> >  $(".button").each(function(){
> >      if ($(this).hasAttribute("img") && $(this).attr("img") != "")
> > {
> >       $(this).append("<IMG SRC='" + $(this).attr("img") + ".gif'>");
> > }
> > )
>
> > I know that it is probably not the best code as you are using
> > attibutes that do not fall into the dom standards but it looks like it
> > would get the job done.
>
> > On Apr 16, 8:51 am, jonhobbs <jon.hobbs.sm...@gmail.com> wrote:
> >> Here is some psuedo-code for what I'm trying to achieve...
>
> >> $(".button").each(function(){
>
> >>     // Get an array of classes that are attached to $(this)
>
> >>     // Loop through the array classes
> >>     for (items in array){
>
> >>         // check to see if the class starts with "icon"
> >>         if(className.startswith('icon')){
>
> >>             // remove the first 4 characters
> >>             var iconName = className.substring(4, className.length);
>
> >>             // Use the remainder to append the image
> >>             $(this).append("<IMG SRC='" + iconName + ".gif'>");
>
> >>         }
>
> >>     }
>
> >> });
>
> >> That way, I could have hundreds of possible icons and I wouldn't have
> >> to have hundreds of IF statements and hundreds of calls to .hasClass()
>
> >> On Apr 16, 2:16 pm, MorningZ <morni...@gmail.com> wrote:
>
> >>> Well, other than asking whether or not an object "has a class or
> >>> doesn't", there isn't much you can do that check each class name
> >>> so like (and this assumes your original HTML, not the separated class
> >>> name) :
> >>> var icons = ["Star", "Plus", "Left", "Right", "Up", "Down"];
> >>> $("div.button").each(function() {
> >>>       var $dv = $(this);
> >>>       $.each(icons, function() {
> >>>            if ($dv.hasClass("icon" + this)) {
> >>>                  $dv.append('<img src="Images/' + this + '.gif"
> >>> alt="" />');
> >>>                  return false;
> >>>            }
> >>>       });
> >>> });
> >>> On Apr 16, 9:08 am, jonhobbs <jon.hobbs.sm...@gmail.com> wrote:
> >> - Show quoted text -
>
> --
> Jonathan Vanherpe - Tallieu & Tallieu NV - jonat...@tnt.be

Reply via email to