我可以优化这个IE6双填充&;是否改为使用jQuery选择器/过滤器修复边距?

我可以优化这个IE6双填充&;是否改为使用jQuery选择器/过滤器修复边距?,jquery,optimization,jquery-selectors,internet-explorer-6,for-loop,Jquery,Optimization,Jquery Selectors,Internet Explorer 6,For Loop,下面是我为修复IE6的双重填充和边距问题而修改的一些代码: // Apply double padding & margin fix for IE6 if ($.browser.msie && parseInt($.browser.version) < 7) { var elements = self.common.$body.find("*").get(); for (var i = 0, len = elemen

下面是我为修复IE6的双重填充和边距问题而修改的一些代码:

// Apply double padding & margin fix for IE6
if ($.browser.msie && parseInt($.browser.version) < 7) { 

    var elements = self.common.$body.find("*").get();

    for (var i = 0, 
             len = elements.length, 
             $e = $(elements[i]), 
             cssFloat = $e.css("float"), 
             cssDisplay = $e.css("display"); 
         i < len; 
         i++) {

        if (cssDisplay !== "none" && 
           (cssFloat === "left" || cssFloat === "right")) { 
           $e.css("display", "inline"); 
        }

    };

}
//为IE6应用双填充和边距修复
如果($.browser.msie&&parseInt($.browser.version)<7){
var elements=self.common.$body.find(“*”).get();
对于(var i=0,
len=元素长度,
$e=$(元素[i]),
cssFloat=$e.css(“浮动”),
cssDisplay=$e.css(“显示”);
i
我在想,执行某种
jQuery.filter()
类型的操作可能会更快一些,在这种操作中,我将只选择那些没有显示
的元素:none和具有<代码>浮动:左或<代码>浮动:右侧。然后我可以循环使用这些代码,并简单地应用
display:inline修复

你认为这样行吗?如果是这样的话,选择器会是什么样子?如果没有或者有更快的方法,请一定要让我知道


提前谢谢

我决定在上创建一个测试用例


结果似乎有利于我原来的设计。至少这回答了这个问题。如果其他人有其他方法,我很想看看。

在适当的情况下手动将“display:inline”添加到CSS不是更实际吗?这不是问题,但回答你,不,不是在我目前的情况下。原因是,我在ASP.NET环境中,如果禁用JavaScript,他们无论如何都无法访问我的站点,我宁愿不必维护
显示:inline到处都有一个
浮动:左或<代码>浮动:右侧在我们的样式表中。这种方法确实很快。我只是想知道是否有一种方法可以在循环之前过滤掉我的if语句所寻找的元素,而不是循环所有元素并用if检查。是的,这不是你的问题,这就是为什么我将其作为后续评论而不是答案发布的原因。你考虑过这个吗?是的,虽然我知道它不能回答您最初的问题,但您可能会发现它很有帮助。这是一个“jQuery选择器”的问题。有人如何帮助您选择我们所知甚少或一无所知的元素?