jQuery通过内联css属性查找

时间:2009-07-24 20:43:02

标签: jquery css

我需要根据特定的css属性找到一个元素。 css内联应用,我不能使用类。 无论如何要在jQuery中实现这一目标吗?

8 个答案:

答案 0 :(得分:26)

您可以使用attribute选择器

例如

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

将在样式属性

中返回包含'regular'的任何输入无线电的包装集

答案 1 :(得分:17)

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

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

答案 2 :(得分:4)

我认为您可以编写自定义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')')

答案 3 :(得分:3)

类似的东西:

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

答案 4 :(得分:3)

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

如前所述:

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

这样我们就可以定位所有具有蓝色背景的同类的div,并告诉他们所有的div都有白色文本。当然,我们可以使用.css来代替.animate,并告诉所有蓝调是动画等等。这对数据库关系和人们在数据库中设置奇怪的东西有很大的帮助。

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

希望它有所帮助。

答案 5 :(得分:1)

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

答案 6 :(得分:0)

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

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

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

答案 7 :(得分:0)

您可以使用.attr() .. .attr('attr_name')

搜索任何内联属性

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

css_inline_value = $(element).attr('style');

if (css_inline_value = search_value) {
    // do stuff
}