首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery中有样式选择器吗?

jQuery中有样式选择器吗?
EN

Stack Overflow用户
提问于 2009-10-26 14:22:26
回答 5查看 19.5K关注 0票数 15

例如,如果我想选择alt所在的每一张图片,我可以这样做:

代码语言:javascript
复制
$("img[alt='Home']")

但是,如何在单个选择器中选择它们的width CSS属性为750 is的每个元素?

编辑:如果没有这样的选择器,是否有插件,或者计划在下一个jQuery版本中这样做?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-10-26 14:44:19

不一定是个好主意,但您可以为它添加一个新的Sizzle选择器:

代码语言:javascript
复制
$.expr[':'].width = function(elem, pos, match) {
    return $(elem).width() == parseInt(match[3]);
}

然后你可以像这样使用:

代码语言:javascript
复制
$('div:width(970)')

但是,这会非常缓慢,所以您需要缩小与以下内容相比的元素数量:

代码语言:javascript
复制
$('#navbar>div:width(970)')

只选择那些直接继承navbar的div,后者的宽度也是970 of。

票数 17
EN

Stack Overflow用户

发布于 2009-10-26 14:25:20

代码语言:javascript
复制
var $images = $("img").filter(function() {
    return $(this).css('width') == '750px';
});

编辑:没有插件,我知道,或任何计划,包括这样的具体功能。您可以自己轻松地将其插件化,例如(未经测试):

代码语言:javascript
复制
$.fn.filterByWidth = function(width) {
    var $images = $("img").filter(function() {
        return $(this).css('width') == width;
    });
    return $images;
};

用法:

代码语言:javascript
复制
$images = $('#div img').filterByWidth('750px');
$images = $('#div img').filterByWidth('50%');
...etc...
票数 15
EN

Stack Overflow用户

发布于 2009-10-26 14:30:55

我不知道这会不会奏效,但是.

代码语言:javascript
复制
${"[style*=width: 750px]")

但是,最好使用类来控制宽度,然后修改该类所有实例的宽度.或者换一个不同的类别:

代码语言:javascript
复制
$(".classname").removeClass("classname").addClass("otherclassname");
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1625107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档