快速问题: 如何选择具有一定宽度的div。例如,我们在一个页面中有10个div,我想选择宽度为200px并执行某些操作的那个。 非常感谢。
答案 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,你可以玩。