20

Possible Duplicate:
How can you determine if a css class exists with Javascript?

Is there a way to check if there is a class named 'some-class-name' in css?

For example, I have:

<style type="text/css">
    .box {
        position: absolute;
        left: 150%;
    }
</style>

My intention is to randomly assign a class to a div on certain event:

var classList = []; //Need to populate this array
$('#updateClass').on('click', function() {
    $('#resultDiv').attr('class',classList[Math.floor((Math.random()*classList.length)+1)]);
}); 

Is it possible to check by JS/jQuery whether a class named 'box' exists in the stylesheet?

I referred to This Question - How can you determine if a css class exists with Javascript?, But the answer didn't help me because the link in the answer doesn't exists anymore.

Thanks.

Community
  • 1
  • 1
Akhil Sekharan
  • 12,467
  • 7
  • 40
  • 57

2 Answers2

1

As mentioned above (How can you determine if a css class exists with Javascript?), you could scan the complete CSS for the requested class, or you could add the requested class to an element and check if the attriubtes of the class apply to it. For example:

document.getElementById('yourTestElementID').className=newClass;
if(document.getElementById('yourTestElementID').style.position === 'thevalue' ) {
  // class exists....
}
Community
  • 1
  • 1
axel.michel
  • 5,764
  • 1
  • 15
  • 25
-2

Your random algorithm:

Math.floor((Math.random()*classList.length)+1)

will generate random number from specific range or more generally from 1 to classList.length.

You just need to be sure that the class names that you are going to use and will be populated in the array will exists.

BoltClock
  • 700,868
  • 160
  • 1,392
  • 1,356
gotqn
  • 42,737
  • 46
  • 157
  • 243