选择具有特定宽度的div

时间:2011-02-14 22:47:46

标签: javascript jquery html

快速问题: 如何选择具有一定宽度的div。例如,我们在一个页面中有10个div,我想选择宽度为200px并执行某些操作的那个。 非常感谢。

2 个答案:

答案 0 :(得分:6)

JCOC611说:

var $theDivs = $('div').filter(function() { return $(this).width() === 200; });

这会让你获得一个包含所有匹配(200px)div的jQuery对象。可能不是世界上最快的东西;如果可以的话,更直接和明确地识别您的页面元素可能会更好。

答案 1 :(得分:0)

您还可以扩展jQuery的伪选择器,如下所示:

// Extend jQuery ":" pseudo selector to include a width() test

$.extend( $.expr[':'], {
    width: function ( element, index, selectorMatches ) {
        var expr = selectorMatches[3].match( /^\s*([<>]?={0,1})?\s*(\d+)\s*$/ ),
            elementWidth = $( element ).width(),
            targetWidth, comparisonOperator;

        if ( ! expr ){
            console.log( "invalid expression" );
            return false;
        }

        comparisonOperator = expr[1] || "==";
        targetWidth = parseInt( expr[2] );

        return eval( elementWidth + comparisonOperator + targetWidth );
    }
});


// Valid expressions are:
// :width( 200 ), :width( = 200 ), :width( == 200 )
// :width( > 200 ), :width( >= 200 )
// :width( < 200 ), :width( <= 200 )
$('div:width( 200 )').hide();

这个恕我直言比使用filter()更有趣,但是jsperf显示它稍慢(慢4%)。

这里有jsFiddle,你可以玩。