jQuery通过内联css属性查找

我需要根据特定的css属性找到一个元素。 css是内联应用的,我不能使用类。 反正有没有在jQuery实现这一点?

您可以使用属性选择器

例如

 $(":radio [style*='regular']") 

将返回一组包含任何输入无线电的包装,其中包含style属性中的'regular'

我认为这是最干净的解决方案。 假设您要查找z-index具有特定值的所有元素:

 $('*').filter(function () { return $(this).css('z-index') == 101 }) 

我想你可以写一个自定义的jQuery选择器来做到这一点。

例如,如果要按特定样式属性进行选择,则可以执行以下操作:

  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; } }); 

然后它可以与任何其他选择器一起使用,您可以选择具有某种样式的所有输入元素,如下所示:

 $('input:styleEquals('width=10px')') 

就像是:

 $('selector').each(function() { if($(this).attr('style').indexOf('font-weight') > -1) { alert('got my attribute'); } }); 

是的,我认为实现所需结果的最快和最简单的方法是使用属性类选择器来定位样式。

如前所述:

 $('div.yourClass[style*="background-color:Blue"]).css('color', 'White'); 

这样我们就可以定位具有蓝色背景的相同类的所有div,并告诉他们所有的div都有白色文本。 当然,而不是.css我们可以在这里使用任何东西, .animate并告诉所有蓝调是动画等。这对DB关系和人们在DB中设置奇怪的东西帮助了我很多。

我曾经不那么通用,并且目标字符串包含:contains …但是有人去了基地,并且更改了文本和标签,以及再见代码;)

希望能帮助到你。

 var ccsStyle="font-weight:bold"; var els = []; $("*").each(function(){ var st = $(this).attr("style"); if(st.indexOf(cssStyle) > -1) els.push(this); }); //do stuff with els 

如果您知道它所在的特定格式,则可以使用属性标志并使用contains。

 $("[style*='position']") 

这将找到定义位置css属性的所有元素。

您可以使用.attr() ..。 .attr('attr_name')搜索任何内联属性

http://api.jquery.com/attr/

 css_inline_value = $(element).attr('style'); if (css_inline_value = search_value) { // do stuff }