我有一个代码页我想要翻阅并更改所有具有不透明度< 1透明,但我没有看到一个优雅的方式来做到这一点。
似乎没有类似于属性选择器的样式选择器:
$(‘element[attribute<value’])
我可以做类似
的事情 if($('.box').css('opacity') < 1) {
然后我需要一个'this'来引用刚刚传递不透明度的元素&lt; 1测试。
似乎应该有一种优雅的方式在jQuery中执行此操作,但我没有看到它。
感谢您的任何建议。
答案 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();
答案 3 :(得分:1)
我认为最好的解决方案可能是使用过滤器 ...
$('.box').filter(function() {
return $(this).css('opacity') < 1;
}).css("opacity", 0);
文档:http://api.jquery.com/filter/
但是您也可以像其他人建议的那样使用循环...或者,如果您已经可以识别这些非不透明的框,则可以为它们提供类或数据属性。
以下是包含 4种不同解决方案的示例:http://jsfiddle.net/hMmN6/2/ 有人应该看哪个是最快的。