I need to find an element based on a specific css
attribute. The css
is applied inline and I can not use a class.
Is there anyway to achieve this i
I think this is the cleanest solution. Say you want to find all elements where z-index has particular value:
$('*').filter(function () { return $(this).css('z-index') == 101 })
You can search for any inline attribute with .attr()
.. .attr('attr_name')
http://api.jquery.com/attr/
css_inline_value = $(element).attr('style');
if (css_inline_value = search_value) {
// do stuff
}
Something like:
$('selector').each(function() {
if($(this).attr('style').indexOf('font-weight') > -1) {
alert('got my attribute');
}
});
Yes, I think the fastest and easiest way to achieve the desired results would be to target styles with a property class selector.
Like stated before:
$('div.yourClass[style*="background-color:Blue"]).css('color', 'White');
That way we target all divs with same class that have blue background and tell them all to have white color text. Of course instead of .css
we can use anything here, .animate
and tell all blues to be animated etc. This helped me a lot with DB relations and people setting up strange things in DB.
I used to be less generic, and target strings with :contains... but then somebody goes to the base, and changes texts and labels, and bye bye code ;)
Hope it helps.
I think you might be able to write a custom jQuery
selector to do this.
For example, if you want to do select by certain style attribute, you can do:
jQuery.extend(jQuery.expr[':'], {
styleEquals: function(a, i, m){
var styles = $(a).attr("style").split(" ")
var found = false;
for (var i = 0; i < styles.length; i++) {
if (styles[i]===m[3]) {
found = true;
break;
}
}
return found;
}
});
Then it can be used in conjuction with any other selector you can select all input elements with certain style like this:
$('input:styleEquals('width=10px')')
You could use an attribute selector
For example
$(":radio [style*='regular']")
would return a wrapped set of any input radios that contain 'regular'
in the style attribute