Jquery - выбрать все теги привязки с отображением: блок - PullRequest
1 голос
/ 03 октября 2011

Я не могу понять, как это сделать?

Учитывая страницу, полную якорных тегов, я хочу выбирать эти элементы только с помощью свойства CSS display:block.

* 1005.* Я думаю, что могу сделать это с помощью цикла jQuery (предупреждающий псевдокод!)
var myarray;
$('a').each(function(arg1, arg2) { 
    if ($(arg2).css('display')=='block')
    myarray.push(arg2);
}

Но разве нет более простого способа?

Ответы [ 6 ]

9 голосов
/ 03 октября 2011

Вы можете использовать filter с функцией в качестве параметра.

$('a').filter(function (index) {
                  return $(this).css("display") === "block";
              })
6 голосов
/ 13 марта 2013

Еще один способ сделать это - использовать селектор атрибутов jQuery:

$("a[style$='display: block;']")
3 голосов
/ 03 октября 2011

Если вы хотите использовать его в качестве инструмента jquery (если вы используете его очень часто). Вы можете расширить селектор ":", добавив следующий код в ваш проект:

$.extend($.expr[':'], {
    "block": function(a, i, m) {
        return $(a).css("display") == "block";
    }
});

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

var res = $("a:block");

см. Пример здесь: http://jsfiddle.net/zFatd/7/

[ПРИМЕЧАНИЕ], как вы можете видеть в примере, если вы используете «: block» для элемента естественного блока (т.е. div), он все равно вернет true. (другими словами, «div: block» - это истина, если вы специально не дадите ему что-то отличное от block)

0 голосов
/ 13 ноября 2013

Или более просто:

$("a:visible")
0 голосов
/ 03 октября 2011

// скрыть все элементы с отображением css в виде блока (медленно):

$('*').filter(function(index) {
  return $(this).css('display')=='block';
}).hide();
0 голосов
/ 03 октября 2011

Я бы предположил, что свойство display устанавливается при наличии определенного класса или другого свойства.Это должно сделать выбор проще с использованием этого атрибута.Также, если другие якоря скрыты, вы можете отобразить видимые, используя селектор $('a:visible').

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...