Селектор $$()
возвращает массив выбранных элементов. Таким образом, вам нужно будет перебирать массив или пользователя встроенный итератор invoke()
.
, например
$$('.css_class').invoke('writeAttribute','checked',true);
или ваш селектор CSS
$$('#product_composite_configure .entry-edit .buttons-set.a-right .scalable').invoke('writeAttribute',"test","test");
Я использовал writeAttribute()
вместо setAttribute()
, как это работает во всех браузерах PrototypeJS поддерживает
Есть несколько других способов сделать эта работа также
$('product_composite_configure').down('.entry-edit .buttons-set.a-right .scalable').writeAttribute('test','test');
$$('#product_composite_configure .entry-edit .buttons-set.a-right .scalable')[0].writeAttribute('test','test');
Все зависит от вашей структуры HTML и вашего желаемого поведения. Если вы собираетесь нацелиться только на один элемент, то использование поиска id с down()
, вероятно, будет работать лучше. Если вы собираетесь иметь несколько дочерних элементов в элементе #product_composite_configure
, то использование селектора $$()
с invoke()
будет означать, что любые новые элементы также будут затронуты без перезаписи сценария.
Во-первых, почему вы используете прототип? У него не было фиксации почти за год ... и это время в JavaScript на земле ... –
Я должен :(не мой выбор –
@JaredSmith Может быть, он только что достиг оптимального, при этом ничего не улучшилось?: -P – Bergi