【发布时间】:2012-02-14 20:31:58
【问题描述】:
原型选择器$、$$...等返回扩展对象Element。但有时我需要简单而不是扩展的HTMLElement 对象。如何使用原型选择器获得它?
【问题讨论】:
标签: javascript dom prototypejs
原型选择器$、$$...等返回扩展对象Element。但有时我需要简单而不是扩展的HTMLElement 对象。如何使用原型选择器获得它?
【问题讨论】:
标签: javascript dom prototypejs
你不能。 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
【讨论】: