Прототип, эквивалентный для jQuery самая близкая функция

Действительно ли там кто-либо эквивалентен в Прототипе для jQuery самая близкая функция?

http://api.jquery.com/closest/

спасибо

17
задан Rob W 27 December 2011 в 17:08
поделиться

2 ответа

Вы можете использовать метод вверх . Это не совсем эквивалентно, поскольку ближайший также учитывает текущий элемент. Поэтому вам нужно сначала протестировать выбранный элемент, чтобы увидеть, соответствует ли он вашим критериям, если нет, используйте метод up :

jQuery:
return $('#id').closest('li');

Prototype:
var element = $('id')
return element.match('li') ? element : element.up('li');
}

Сравнение:

.closest ()

  • Начинается с текущего элемента
  • Перемещается вверх по дереву DOM, пока не найдет совпадение для предоставленного селектора.
  • Возвращает объект jQuery, содержащий ноль или один элемент

.up ()

  • Начинается с родительского элемента
  • Перемещается вверх по дереву DOM, пока не найдет совпадение для предоставленного селектора.
  • Возвращает расширенный объект Element или undefined, если он не совпадает.

Вы можете легко расширить Prototype, включив этот метод для всех элементов, например итак:

// Adds a closest-method (equivalent to the jQuery method) to all 
// extended Prototype DOM elements
Element.addMethods({
   closest: function closest (element, cssRule) {
      var $element = $(element);
      // Return if we don't find an element to work with.
      if(!$element) {
         return;
      }
      return $element.match(cssRule) ? $element : $element.up(cssRule);
   }
});
29
ответ дан 30 November 2019 в 12:27
поделиться

.next ('. ClassName') или .next ('divId ')

Есть также .previous () , .down () и .up () , в зависимости от того, где вы смотрите.

2
ответ дан 30 November 2019 в 12:27
поделиться
Другие вопросы по тегам:

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