Как я могу объединить «this» и дополнительный селектор строк, используя jquery?

0

У меня есть следующий код:

            $("table.altRow tr:visible").each(function (index) {
                if (index % 2) {
                    $(this).addClass("oddColor");
                } else {
                    $(this).addClass("evenColor");
                }
            });

но теперь мне нужно запустить этот код для некоторых таблиц отдельно в цикле (вы можете игнорировать, почему я делаю это для этого вопроса, поскольку мой вопрос больше связан с синтаксисом). Поэтому я хочу иметь что-то вроде этого:

      $("table.altRow").each(function () {
            $(this + " tr:visible").each(function (index) {
                if (index % 2) {
                    $(this).addClass("oddColor");
                } else {
                    $(this).addClass("evenColor");
                }
            });
      });

проблема с приведенным выше кодом - это строка:

   $(this + " tr:visible")

Я пытаюсь понять, как написать select, который представляет эту таблицу в цикле, но конкатенация "tr: visible" после него. Какой правильный синтаксис для этого?

  • 1
    «this» - это ссылка на объект, который вы объединяете со строкой. вы можете использовать «this» как контекст, в котором вы хотите получить доступ к «tr: visible». в этом случае синтаксис должен быть $ («tr: visible», this);
  • 0
    почему отрицание?
Показать ещё 1 комментарий
Теги:
concatenation
selector

2 ответа

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

изменение

$(this + " tr:visible")

в

$("tr:visible", this)

используя контекст, или просто

$(this).find("tr:visible")
0

Вы должны использовать CSS для применения стиля строк вместо синтаксического анализа JQuery

tr:nth-child(even) {
    background-color: #000000;
}

tr:nth-child(odd) {
    background-color: #FF0000;
}
  • 0
    вышеупомянутый css (nth-child) не работает на IE8 и ниже
  • 0
    А поскольку jQuery включает в себя фильтр :visible , он не будет работать правильно, если некоторые элементы не видны.

Ещё вопросы

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