我怎样才能选择要应用特定的CSS属性的所有元素,使用jQuery? 例如:
.Title
{
color:red;
rounded:true;
}
.Caption
{
color:black;
rounded:true;
}
如何通过一个名为“圆”的属性来选择?
CSS类名是非常灵活的。
$(".Title").corner();
$(".Caption").corner();
如何更换这两种操作一次操作。 也许是这样的:
$(".*->rounded").corner();
有没有更好的方式来做到这一点?
你不能(使用CSS选择器)的基础上已经应用到他们的CSS属性选择元素。
如果你想手动做到这一点,你可以选择在他们的文档中的每个元素,循环,并检查你感兴趣的属性的计算值(这将可能只与真正的CSS属性的工作,虽然,不是由那些如为rounded
)。 这也将是缓慢的。
更新响应编辑- 组选择 :
$(".Title, .Caption").corner();
这是一个两岁的线程,但它仍然是有用的我,所以它可能是有用的人,也许。 下面是我落得这样做:
var x = $('.myselector').filter(function () {
return this.style.some_prop == 'whatever'
});
不简明扼要,我想,但我从来没有需要这样的事情,除了现在,这不是一般使用非常有效的,无论如何,我看到它。
谢谢你,珠宝。 我用了你的解决方案,而是使用了jQuery的CSS,而不是纯JavaScript,就像这样:
var x = $('*').filter(function() {
return $(this).css('font-family').toLowerCase().indexOf('futura') > -1
})
这个例子将选择其中的所有元素font-family
属性值包含“富利”。
类似珠宝的。 只是一点点增强:
$('[class]').filter(function() {
return $(this).css('your css property') == 'the expected value';
}
).corner();
我想用$(“[类]”)是更好的:
- 没有必要硬编码的选择(S)
- 将不检查一个所有的HTML元素之一。
下面是一个例子 。
这里是一个干净,容易理解的解决方案:
// 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();
}
});
该解决方案是不同的,因为它不使用角落,过滤器或回报。 这是有意为用户更广泛的受众做。
东西来代替:
- 与你的选择替换“.dom级”。
- 你在找什么替换CSS属性和价值。
- 你要的是找到的元素上执行什么替换“doThingsHere()”。
自定义CSS属性不可继承,因此必须直接应用到每一个元素(即使你用js动态添加的属性,则应该通过添加一个类做到这一点),所以...
CSS
.Title
{
color:red;
}
.Caption
{
color:black;
}
HTML
你并不需要定义一个圆形的:在所有真正的财产。 只需使用“四舍五入”类的存在:
<div class='Title Rounded'><h1>Title</h1></div>
<div class='Caption Rounded'>Caption</div>
JS
jQuery( '.Rounded' ).corner();