jQuery: вы можете выбирать по правилу CSS, а не по классу? - PullRequest
21 голосов
/ 04 сентября 2008

.Контейнер может содержать много компонентов

Данный код выглядит так:

$(".container .component").each(function(){
  $(".container", this).css('border', '1px solid #f00');
});

Что мне нужно добавить к строке в фигурных скобках, чтобы выбрать только вложенные .containers, ширина которых в CSS установлена ​​в 'auto'? Я уверен, что это что-то простое, но я на самом деле не так уж много использовал jQuery.

Ответы [ 3 ]

19 голосов
/ 04 сентября 2008
$(".container .component").each(function()
{
    $(".container", this).each(function() {
        if($(this).css('width') == 'auto')
        {
            $(this).css('border', '1px solid #f00');
        }
    });
});

Аналогично другому ответу, но поскольку компоненты могут также иметь несколько контейнеров, здесь также требуется проверка .each () для определения ширины.

17 голосов
/ 20 января 2012

Вы можете посмотреть на .filter().

Что-то вроде:

$('.container .component .container')
.filter(function() {return $(this).css('width') == 'auto';})
.css({border: '1px solid #f00'});
4 голосов
/ 04 сентября 2008
$(".container .component").each(function() {
    if ($(".container", this).css('width') === "auto")
        $(".container", this).css('border', '1px solid #f00');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...