Сформируйте упакованный набор элементов с определенным значением стиля

0

У меня есть страница кода, которую я хочу скопировать и изменить фоновый цвет на всех.box divs, которые имеют прозрачность <1 до прозрачности, но я не вижу элегантный способ сделать это.

Кажется, нет селектора стиля, например, есть селектор атрибутов:

                            $(‘element[attribute<value])

Я могу сделать что-то вроде

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

но тогда мне нужно "это", чтобы обратиться к элементу, который только что прошел тест непрозрачности <1.

Похоже, в jQuery должен быть элегантный способ сделать это, но я этого не вижу.

Спасибо за любые предложения.

  • 0
    "all #box divs" Должен быть только один div с идентификатором "box". Идентификаторы должны быть уникальными.
  • 0
    Является ли «box» именем класса?
Показать ещё 2 комментария
Теги:

4 ответа

1
Лучший ответ

вы можете использовать each функцию jQuery для просмотра каждого согласованного элемента

пример из документации:

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

Таким образом, вы можете сделать следующее:

$( ".box" ).each(function( index ) {
  if( $(this).css('opacity') < 1 )
    // do your stuff here
});
  • 0
    Это все отличные решения! Спасибо! Я выбрал этот, потому что я использую каждый () все время, так что я знаком с ним. Я должен был увидеть это сам как решение.
1

Используйте .filter() чтобы уменьшить объект jQuery до элементов, соответствующих вашему желаемому условию:

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

http://api.jquery.com/filter

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/ Кто-то должен увидеть, что быстрее.

1

Используйте функцию фильтра jQuery:

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

JS Fiddle: http://jsfiddle.net/UQ4gy/

  • 0
    он сказал: «Я могу сделать что-то вроде», я думаю, что это просто опечатка .. и вы не отвечаете на вопрос ..
  • 0
    @ Харди Я понял код буквально, обновил.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню