jQuery,元素是否具有风格

时间:2011-06-25 19:25:35

标签: jquery css

使用jQuery,我怎么说'#parent的孩子是否有stlye =“width”'。

我知道开始...

jQuery('#parent').children();

但我不知道怎么写风格'宽度'。

修改

在html中div表示style =“width = xxx”。我想找到第一次出现的宽度并添加一个边距:0 auto;那个div。它用于集中视频。

一些说风格=“宽度”的div是从顶部嵌套的3个级别。这仍然适用于.children()对吗?

出于某种原因,我无法获得以下任何代码......

5 个答案:

答案 0 :(得分:3)

您需要使用"attribute contains" selector

  

描述:选择具有指定属性的元素,其值包含给定的子字符串。

jQuery('#parent [style*="width:"]')

这将为#parent的孩子提供width:属性中的字符串style

示例:http://jsfiddle.net/ambiguous/vpdGa/1/

如果您需要担心border-width和类似的CSS属性,那么您可以添加regular expression selector

jQuery.expr[':'].regex = function(elem, index, match) {
    var matchParams = match[3].split(','),
        validLabels = /^(data|css):/,
        attr = {
            method: matchParams[0].match(validLabels) ? 
                        matchParams[0].split(':')[0] : 'attr',
            property: matchParams.shift().replace(validLabels,'')
        },
        regexFlags = 'ig',
        regex = new RegExp(matchParams.join('').replace(/^\s+|\s+$/g,''), regexFlags);
    return regex.test(jQuery(elem)[attr.method](attr.property));
}

然后搜索:

jQuery('#parent :regex(style,(^|\\s)width:)')

不要忘记额外的反斜杠来超越字符串文字的反斜杠解释。

这种方法的一个例子:http://jsfiddle.net/ambiguous/vpdGa/4/

答案 1 :(得分:2)

尝试css()

 var width = $(element).css('width')

答案 2 :(得分:0)

你可以使用jquery'attr,如果它有宽度而不是

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

对结果进行长度检查

应该这样做。

答案 3 :(得分:0)

使用prop()方法,如下所示:http://api.jquery.com/prop/

答案 4 :(得分:0)

 function checkStyleAttr(elSelector,attr){
    return new RegExp('[^-]'+attr+'[ ]*:').test($(elSelector).attr('style'));
}