Получить HTMLElement с помощью селектора Prototype - PullRequest
1 голос
/ 20 января 2012

Селекторы прототипов $, $$ ... и т. Д. Возвращают расширенный объект Element. Но иногда мне нужен простой, не расширенный, HTMLElement объект. Как я могу получить его с помощью селекторов Prototype?

1 Ответ

2 голосов
/ 20 января 2012

Вы не можете. Prototype.js изменяет прототип Element, методы которого наследуются от HTMLElement.

$ эквивалентно document.getElementById и возвращает простой элемент, или null.
$$ аналогично document.querySelectorAll, но возвращает Array вместо NodeList.

Простой способ проверить это, запустить следующий код на странице, где используется Prototype.js:

console.log(Object.getOwnPropertyNames(Element));

Вместо просто prototype печатается целый список, похожий на:

cache,Methods,_attributeTranslations,_returnOffset,_getContentFromAnonymousElement,_insertionTranslations,visible,toggle,hide,show,remove,update,replace,insert,wrap,inspect,recursivelyCollect,ancestors,descendants,firstDescendant,immediateDescendants,previousSiblings,nextSiblings,siblings,match,up,down,previous,next,getElementsBySelector,getElementsByClassName,readAttribute,writeAttribute,getHeight,getWidth,classNames,hasClassName,addClassName,removeClassName,toggleClassName,observe,stopObserving,cleanWhitespace,empty,descendantOf,scrollTo,getStyle,getOpacity,setStyle,setOpacity,getDimensions,makePositioned,undoPositioned,makeClipping,undoClipping,cumulativeOffset,positionedOffset,absolutize,relativize,cumulativeScrollOffset,getOffsetParent,viewportOffset,clonePosition,childElements,Simulated,extend,hasAttribute,addMethods,ClassNames,childOf,prototype,length,name,arguments,caller
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...