选择具有特定CSS的所有元素,使用jQuery(Select all elements that h

2019-06-17 23:20发布

我怎样才能选择要应用特定的CSS属性的所有元素,使用jQuery? 例如:

.Title
{
    color:red;
    rounded:true;
}

.Caption
{
    color:black;
    rounded:true;
}

如何通过一个名为“圆”的属性来选择?

CSS类名是非常灵活的。

$(".Title").corner();
$(".Caption").corner();

如何更换这两种操作一次操作。 也许是这样的:

$(".*->rounded").corner();

有没有更好的方式来做到这一点?

Answer 1:

你不能(使用CSS选择器)的基础上已经应用到他们的CSS属性选择元素。

如果你想手动做到这一点,你可以选择在他们的文档中的每个元素,循环,并检查你感兴趣的属性的计算值(这将可能只与真正的CSS属性的工作,虽然,不是由那些如为rounded )。 这也将是缓慢的。

更新响应编辑- 组选择 :

$(".Title, .Caption").corner();


Answer 2:

这是一个两岁的线程,但它仍然是有用的我,所以它可能是有用的人,也许。 下面是我落得这样做:

var x = $('.myselector').filter(function () { 
    return this.style.some_prop == 'whatever' 
});

不简明扼要,我想,但我从来没有需要这样的事情,除了现在,这不是一般使用非常有效的,无论如何,我看到它。



Answer 3:

谢谢你,珠宝。 我用了你的解决方案,而是使用了jQuery的CSS,而不是纯JavaScript,就像这样:

var x = $('*').filter(function() {
    return $(this).css('font-family').toLowerCase().indexOf('futura') > -1
})

这个例子将选择其中的所有元素font-family属性值包含“富利”。



Answer 4:

类似珠宝的。 只是一点点增强:

$('[class]').filter(function() {
    return $(this).css('your css property') == 'the expected value';
  }
).corner();

我想用$(“[类]”)是更好的:

  • 没有必要硬编码的选择(S)
  • 将不检查一个所有的HTML元素之一。

下面是一个例子 。



Answer 5:

这里是一个干净,容易理解的解决方案:

// 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();
    }
});

该解决方案是不同的,因为它不使用角落,过滤器或回报。 这是有意为用户更广泛的受众做。

东西来代替:

  1. 与你的选择替换“.dom级”。
  2. 你在找什么替换CSS属性和价值。
  3. 你要的是找到的元素上执行什么替换“doThingsHere()”。


Answer 6:

自定义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();


文章来源: Select all elements that have a specific CSS, using jQuery