原型选择器$
,$$
...等返回扩展对象Element
。但有时我需要简单的,而不是扩展的HTMLElement
对象。如何使用Prototype选择器获取它?
答案 0 :(得分:2)
你做不到。 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