我怎么可以选择的所有要素,有一个特定的属性应用,使用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();

我认为使用$('[class]')更好:

  • 没有必要硬代码的选择(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();
    }
});

这种解决方案是不同的,因为它不使用角、过滤器或返回。这是有意作出更广泛的用户。

事情更换:

  1. 替换"。dom-类"与你的选择。
  2. 取代属性和价值与你在找什么。
  3. 替换"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();
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top