jquery使用display inline-block搜索所有CSS

时间:2012-08-17 19:37:47

标签: jquery css

是否可以按属性搜索CSS:value而不是selector / attribute?或者是否需要通过服务器脚本解析?

如果有可能我会计划创建一个脚本,如果选择器具有:display: inline-block,则自动添加IE7 hack,因为我厌倦了写*display: inline; zoom: 1;

2 个答案:

答案 0 :(得分:3)

如果您将样式直接添加到元素,则可以按以下方式进行过滤:

<强>代码1

$("[style*='inline-block']");

但是如果使用css计算样式,上面的代码将不会获取元素,这种情况下您可以使用以下内容。

<强>代码2

$('*').filter(function() {
    return $(this).css('display') == 'inline-block';
});

所以,如果我有以下html。

<div style="display: inline-block"></div>
<div class="someClass"></div>

Code1只获得第一个 Code2同时获得。

答案 1 :(得分:2)

如果元素被设置为内联块,则此代码应允许您处理某些内容。

$("body *").each(function (i) {
    if ($(this).css('display') == "inline-block") {
        //inline block - do what you need to do
        this.style.color = "blue";
        alert($(this).css('display'));            
    }
});

请参阅jsfiddle了解工作示例http://jsfiddle.net/nevtn/

这将是您需要的整个脚本:

$(document).ready(function(){

if ($.browser.msie  && parseInt($.browser.version, 10) === 7) {
    $("body *").each(function (i) {
        if ($(this).css('display') == "inline-block") {
            //inline block - do what you need to do
            $(this).css({'display':'inline', 'zoom':'1'});  
        }
    });
}

});​

示例演示(伪造的IE7)http://jsfiddle.net/nevtn/5/