#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.