jquery для удаления всех элементов z-index определенного значения

0

Я пытаюсь использовать jquery, чтобы удалить все значения z-index в заданном селекторе, которые соответствуют определенному z-индексу. Кто-нибудь есть идея, как это сделать?

Спасибо за любую помощь!

Теги:
z-index

2 ответа

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

Вы можете использовать функцию фильтра:

$("yourselector").filter(function() {
    return $(this).css("z-index") == 30; //change to your criteria
    //  OR
    //  return this.style.zIndex == 30;
}).css("z-index", ''); //your new zindex
  • 0
    ОП заявил "удалить" элемент, а не "изменить"
  • 0
    @ Джорен, это ничего не «меняет». .filter идеально подходит для того, что хочет OP
Показать ещё 15 комментариев
2

Попробуйте:

var search = "2"; // Could also be "inherit", etc.
$('.selector').css('z-index', function(i, val) {
    return (val.toString() == search) ? '' : val;
});

См. Эту демонстрацию.

Таким образом, если z-index элемента не 2, то он остался один. Если оно равно 2, оно будет удалено; в jQuery, установка значения CSS в пустую строку удаляет значение и откладывает его на таблицы стилей.

Если вы хотите изменить z-index, а не удалять его, просто замените пустую строку '' новым значением или переменной.

* Редактируйте для моего собственного рассудка: Удалился с parseInt() в пользу преобразования возвращаемого z-индекса в строку (jQuery пытается вернуть целое число);таким образом мы можем использовать поиск значений, таких как inherit.

  • 1
    Не забудьте аргумент radix для parseInt.
  • 0
    Почти хороший ответ, за исключением того, что в некоторых браузерах (например, в моем chrome) все еще есть проблемы с чтением z-index через jQuery. Таким образом, это не работает кросс-браузер. Я знаю, потому что я только что проверил это, и он не работает в моем Chrome, но он работает в моем FF. Что шокирует, потому что новый FF, на мой взгляд, является провальным браузером
Показать ещё 5 комментариев

Ещё вопросы

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