find() и attr() в prototypejs

#jquery #prototypejs

#jquery #prototypejs

Вопрос:

Каковы эквиваленты функций jQuery find() и attr() в prototypejs?

Может ли кто-нибудь помочь мне преобразовать этот код с помощью prototypejs?

 var className = $(this).find('.myBtn').attr('class');
$(this).find('.tab').attr('class', className   ' current');
  

Заранее спасибо!

Комментарии:

1. Да, я использую jQuery. Существующий код использует prototypejs, и я должен его настроить.

2. Прототип неплох. Это просто хорошо структурировано.

Ответ №1:

Для других, ищущих и размещающих здесь: я думаю, что Prototype Element.select() лучше подойдет в качестве эквивалента jQuery $.find() .

Ответ №2:

Вы можете использовать .down() для поиска потомка и readAttribute() / writeAttribute() для чтения / изменения атрибутов.

Или вы могли бы просто остаться с jQuery. 😉

Комментарии:

1. Element.select() более похож на то, что указано в другом ответе, поскольку он находит совпадающие все элементы, в то время как .down() только первые N совпадений.

2. Как указано выше .down() находит только первый, не все соответствующие потомки

Ответ №3:

Существует заметная разница между прототипом select() и down(). Когда бы вы ни использовали select() , он вернет результат, заключенный в объект array. Но если вы используете down() , выбранный элемент (учитывая, что существует только уникальный элемент ) приведет к этому элементу.

введите описание изображения здесь

Комментарии:

1. Если бы вы также ответили на часть о чтении и изменении атрибутов, я бы сказал, что это должен быть принятый ответ.

Ответ №4:

 $('element_id').readAttribute('attribute_name'); //- returns the value
$('element_id').writeAttribute('attribute_name', 'new value'); // writes the value
  

http://api.prototypejs.org имеет хороший и краткий набор документации, его действительно стоит прочитать. Prototype имеет очень дисциплинированный подход к работе со страницей и к работе с данными, большая часть последних щедро украдена из модуля Ruby Enumerable. jQuery подчеркивание равно Prototype.