eba*_*lga 59 javascript css jquery jquery-selectors
如何使用jQuery选择所有应用了特定CSS属性的元素?例如:
.Title
{
color:red;
rounded:true;
}
.Caption
{
color:black;
rounded:true;
}
Run Code Online (Sandbox Code Playgroud)
如何通过名为"圆形"的属性进行选择?
CSS类名非常灵活.
$(".Title").corner();
$(".Caption").corner();
Run Code Online (Sandbox Code Playgroud)
如何将这两个操作替换为一个操作.也许是这样的:
$(".*->rounded").corner();
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做到这一点?
Bij*_*lle 63
这是一个两年前的帖子,但它对我来说仍然有用,所以它可能对其他人有用.这是我最终做的事情:
var x = $('.myselector').filter(function () {
return this.style.some_prop == 'whatever'
});
Run Code Online (Sandbox Code Playgroud)
并不像我想的那样简洁,但除了现在我从来没有需要这样的东西,而且无论如何它对于一般用途都不是很有效,正如我所看到的那样.
Iva*_*aer 37
谢谢Bijou.我使用了你的解决方案,但使用了jQuery .css而不是纯javascript,如下所示:
var x = $('*').filter(function() {
return $(this).css('font-family').toLowerCase().indexOf('futura') > -1
})
Run Code Online (Sandbox Code Playgroud)
此示例将选择font-family属性值包含"Futura"的所有元素.
Que*_*tin 35
您不能(使用CSS选择器)根据已应用于它们的CSS属性选择元素.
如果你想手动完成这个,你可以选择文档中的每个元素,循环它们,并检查你感兴趣的属性的计算值(这可能只适用于真正的CSS属性,而不是像as rounded).它也会很慢.
更新以响应编辑 - 组选择器:
$(".Title, .Caption").corner();
Run Code Online (Sandbox Code Playgroud)
Ant*_*nyY 14
与Bijou相似.只是一点点增强:
$('[class]').filter(function() {
return $(this).css('your css property') == 'the expected value';
}
).corner();
Run Code Online (Sandbox Code Playgroud)
我认为使用$('[class]')更好:
这是一个例子.
这是一个干净,易于理解的解决方案:
// find elements with jQuery with a specific CSS, then execute an action
$('.dom-class').each(function(index, el) {
if ($(this).css('property') == 'value') {
$(this).doThingsHere();
}
});
Run Code Online (Sandbox Code Playgroud)
此解决方案不同,因为它不使用角点、过滤器或返回。它是为更广泛的用户而设计的。
需要更换的东西:
祝你好运!