js function to check class

Hi Experts

I have a js script which works well, that is until I have an object with 2 classes.

the script is created to re-style radio buttons, checkboxes and selects...  written by ryan fait.

The script will style accordingly any radio,checkbox or select it comes across with the class='styled'.

in that scenario, it works great, however, if  for example a radio button had

class='someClass styled'

the js will not register this, as it has 2 classes and the script is doing this:

var inputs = document.getElementsByTagName("input"), span = Array(), textnode, option, active;
            for(a = 0; a < inputs.length; a++) {
            
                  
                  if((inputs[a].type == "checkbox" || inputs[a].type == "radio") && inputs[a].className == "styled") {
                        

my class='someClass styled' is not matching because it is not = 'styled'

so I need it to do a pattern match like this hasClass function

function hasClass(ele,cls) {
      return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}

trouble is when I run this

                  if((inputs[a].type == "checkbox" || inputs[a].type == "radio") && hasClass(inputs[a].className,"styled"))

I get an error jn firebug....

"ele.className is undefined"

I am not familiar enough with js to know why this won't work, any ideas?

            
cycledudeAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
McNeticConnect With a Mentor Commented:
You already put inputs[a].className into your function hasClass, where you again try to get the member className of it. You have to remove className in one of the places.
0
 
cycledudeAuthor Commented:
Oh boy, that was such an easy fix!

thank you for pointing that out, I cannot believe I missed it!
0
 
cycledudeAuthor Commented:
;)
0
All Courses

From novice to tech pro — start learning today.