Условие в js скрипте
Если "$("a#open:visible");" в консоли выдает "[]", то как это прописать в следующем условии вместо звездочек:
"if ("a#open:visible" == ***) {}"?
"", "[]", null, false не срабатывают

  • JQuery возвращает объект (подобный массиву) найденных объектов, причем пустые скобки указывают на то, что он пустой. А в остальном вопрос, что ты хочешь получить.

    К примеру можно проверить не пустой ли он так:
    if($("a#open:visible").length == 0) { /*ссылок не найдено, doSomething*/ };

  • в javascript комбинация [] означает массив. К примеру var a = []; будет означать, что нужно создать пустой массив и назвать его a
    Комбинация $() принадлежит jquery. Она имеет множество назначений. Разберем твой пример $("a#open:visible"):
    в данном случае необходимо выбрать из документа ссылки (в самом начале селектора стоит буква a), у которых идентификатор, т. е. параметр id (в селекторах всегда следует за символом #), равен open. После двоеточия идет дополнительное условие (в данном случае имеются в виду те ссылки, которые в настоящий момент пользователь может видеть, т. е. они не являются скрытыми и их css-свойство display не равно none). Также следует учитывать, что идентификатор в пределах документа должен быть уникальным (в отличие от класса - class - или наименования - name). Т. е. ссылка должна быть на странице одна. И, если она скрыта, то в ответ ты получишь пустой массив []. А, чтобы понять, есть ли в массиве элементы, нужно просто проверить его длину. В итоге получим
    if ($('a#open:visible').length) {
    эта секция выполнится, если был найден хоть один элемент, удовлетворяющий всем условиям
    обращаться к найденным элементам можно по индексу $('a#open:visible')[0] и т. д.
    }
    else {
    эта секция выполнится, если не найдено ни одного элемента, удовлетворяющего всем условиям
    }

    поскольку 0 может трактоваться как булево отрицание, а все положительные числа как булево true, то условие можно записать без непосредственного сравнения с нулем или каким-либо числом