如果我想选择它的alt是Home的每个图像,我可以这样做:
$("img[alt='Home']")
Run Code Online (Sandbox Code Playgroud)
但是,如何width在单个选择器中选择其CSS属性为750px的每个元素?
编辑:如果没有这样的选择器,是否有任何插件,或任何计划在下一个jQuery版本中执行它?
Jon*_*her 17
不一定是个好主意,但你可以为它添加一个新的Sizzle选择器:
$.expr[':'].width = function(elem, pos, match) {
return $(elem).width() == parseInt(match[3]);
}
Run Code Online (Sandbox Code Playgroud)
你可以这样使用它:
$('div:width(970)')
Run Code Online (Sandbox Code Playgroud)
然而,这将是非常缓慢的,所以你想要缩小与之比较的元素数量:
$('#navbar>div:width(970)')
Run Code Online (Sandbox Code Playgroud)
只选择那些作为导航栏直接后代的div,它们的宽度也是970px.
kar*_*m79 15
var $images = $("img").filter(function() {
return $(this).css('width') == '750px';
});
Run Code Online (Sandbox Code Playgroud)
编辑:没有我知道的插件,或任何包含此类特定功能的计划.您可以自己轻松地对其进行插件化,例如(未经测试):
$.fn.filterByWidth = function(width) {
var $images = $("img").filter(function() {
return $(this).css('width') == width;
});
return $images;
};
Run Code Online (Sandbox Code Playgroud)
用法:
$images = $('#div img').filterByWidth('750px');
$images = $('#div img').filterByWidth('50%');
...etc...
Run Code Online (Sandbox Code Playgroud)
我不知道这是否有效,但......:
${"[style*=width: 750px]")
Run Code Online (Sandbox Code Playgroud)
但是,最好使用类来控制宽度,然后修改该类的所有实例的宽度......或者更改为其他类:
$(".classname").removeClass("classname").addClass("otherclassname");
Run Code Online (Sandbox Code Playgroud)