形成具有特定样式值的包装元素集

时间:2013-12-13 22:06:19

标签: jquery

我有一个代码页我想要翻阅并更改所有具有不透明度< 1透明,但我没有看到一个优雅的方式来做到这一点。

似乎没有类似于属性选择器的样式选择器:

                            $(‘element[attribute<value’])

我可以做类似

的事情
       if($('.box').css('opacity') < 1) {

然后我需要一个'this'来引用刚刚传递不透明度的元素&lt; 1测试。

似乎应该有一种优雅的方式在jQuery中执行此操作,但我没有看到它。

感谢您的任何建议。

4 个答案:

答案 0 :(得分:1)

使用jQuery的filter函数:

var boxes = $(".box").filter(function(){
   return $(this).css("opacity") != 1;
});

JS小提琴: http://jsfiddle.net/UQ4gy/

答案 1 :(得分:1)

您可以使用jQuery的each函数查看每个匹配的元素

文档中的一个例子:

$( "li" ).each(function( index ) {
  console.log( index + ": " + $( this ).text() );
});

所以你可以这样做:

$( ".box" ).each(function( index ) {
  if( $(this).css('opacity') < 1 )
    // do your stuff here
});

答案 2 :(得分:1)

使用.filter()将jQuery对象缩减为符合所需条件的元素:

$('.box').filter(function() {
    return $(this).css('opacity')<1;
}).someMethod();

http://api.jquery.com/filter

答案 3 :(得分:1)

我认为最好的解决方案可能是使用过滤器 ...

$('.box').filter(function() {
    return $(this).css('opacity') < 1;
}).css("opacity", 0);

示例:http://jsfiddle.net/hMmN6/

文档:http://api.jquery.com/filter/

但是您也可以像其他人建议的那样使用循环...或者,如果您已经可以识别这些非不透明的框,则可以为它们提供类或数据属性。

以下是包含 4种不同解决方案的示例:http://jsfiddle.net/hMmN6/2/ 有人应该看哪个是最快的。