Могу ли я использовать OR в css и селекторе jquery? [Дубликат]

Ну, простыми словами:

Вы пытаетесь получить доступ к объекту, который не создан или в настоящее время не находится в памяти.

Итак, как это решить:

  1. Отладить и отпустить отладчик ... Он сразу приведет вас к переменной, которая сломана ... Теперь ваша задача - просто исправить это. Используя новое ключевое слово в соответствующем месте.
  2. Если это вызвано некоторыми командами базы данных, потому что объект отсутствует, все, что вам нужно сделать, это выполнить нулевую проверку и обработать его:
    if (i == null) {
        // Handle this
    }
    
  3. Самый сложный. если GC уже собрал объект ... Это обычно происходит, если вы пытаетесь найти объект, используя строки ... То есть, найдя его по имени объекта, может случиться, что GC, возможно, уже очистил его ... Это трудно найти и станет проблемой. Лучшим способом решения этой проблемы является выполнение нулевых проверок везде, где это необходимо в процессе разработки. Это сэкономит вам много времени.

Поиск по имени означает, что некоторые фреймворки позволяют использовать FIndObjects с помощью строк, а код может выглядеть так: FindObject («ObjectName»);

131
задан Cokegod 22 September 2011 в 16:35
поделиться

4 ответа

есть лучший синтаксис?

Нет. CSS 'or (,) не допускает группировки. Это, по сути, логический оператор с наименьшим приоритетом в селекторах, поэтому вы должны использовать .a.c,.b.c.

103
ответ дан Matt Ball 4 September 2018 в 09:48
поделиться

Пока нет, но есть экспериментальный селектор :matches(), который делает именно это:

:matches(.a .b) .c {
  /*stuff goes here */
}

Здесь вы можете найти дополнительную информацию об этом здесь и здесь . В настоящее время большинство браузеров поддерживают начальную версию :any(), которая работает одинаково, но будет заменена на :matches(). Нам просто нужно подождать еще немного, прежде чем использовать это везде (я уверен).

17
ответ дан Metalcoder 4 September 2018 в 09:48
поделиться

Если у вас есть это:

<div class="a x">Foo</div>
<div class="b x">Bar</div>
<div class="c x">Baz</div>

И вы хотите только выбрать элементы, которые имеют .x и (.a или .b), вы могли бы написать:

.x:not(.c) { ... }

, но это удобно только тогда, когда у вас есть три «подкласса», и вы хотите выбрать два из них.

Выбор только одного подкласса (например .a): .a.x

Выбор двух подклассов (например, .a и .b): .x:not(.c)

Выбор всех трех подклассов: .x

9
ответ дан Šime Vidas 4 September 2018 в 09:48
поделиться

Нет. Стандартный CSS не обеспечивает того, что вы ищете.

Однако вы можете захотеть просмотреть LESS и SASS .

Это два проекта, которые направлены на расширение синтаксиса CSS по умолчанию путем введения дополнительных функций, включая переменные, вложенные правила и другие улучшения.

Они позволяют вам писать гораздо более структурированный код CSS и любой из них почти наверняка решит ваш конкретный вариант использования.

Конечно, ни один из браузеров не поддерживает их расширенный синтаксис (особенно, поскольку два проекта имеют разные синтаксис и функции), но то, что они делают, «компилятор», который преобразует ваш код LESS или SASS в стандартный CSS, который затем можно развернуть на вашем сайте.

4
ответ дан Spudley 4 September 2018 в 09:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: