0

please have a look at following question and answer, the seccond answer (with the many upvotes) Jquery: How to check if the element has certain css class/style

looks like this:

if ($('#yourElement').css('position') == 'absolute') {
    // true
}

so this is awesome but I would like something like

if ($('#yourElement').css('position') == 'absolute') {
    $(this).addClass('xxx');
}

so the element with the ID "yourElement" gets a class added

what is the easyest way to do that

Community
  • 1
  • 1
caramba
  • 21,963
  • 19
  • 86
  • 127

4 Answers4

4

You could do it this way:

$('#yourElement').addClass(function(index, currentClass) {
    return $(this).css('position') == 'absolute' ? 'xxx' : '';
});

For more information on the syntax take a look at the API for .addClass().

Anthony Grist
  • 38,173
  • 8
  • 62
  • 76
2

Assign $('#yourElement') to a variable. Then perform the check on that variable and add the class to it as well. This simply saves on the number of queries made to the DOM with the $() function in your example and in the likely possibility that further manipulation is required.

For example:

var your_element = $('#yourElement');
if (your_element.css('position') == 'absolute') { your_element.addClass('xxx'); }
Boaz
  • 19,892
  • 8
  • 62
  • 70
2
var yourElement = $('#yourElement');    
if (yourElement.css('position') == 'absolute') {
        yourElement.addClass('xxx');
}
shere
  • 101
  • 3
2
// Cache your element first
var $element = $('#yourElement');

if ($element.css('position') == 'absolute') {
    $element.addClass('xxx');
}
palaѕн
  • 72,112
  • 17
  • 116
  • 136