selectnodes.js

来自「秘密网源代码 传闻拉了 100W风投」· JavaScript 代码 · 共 48 行

JS
48
字号
var isIE = (navigator.userAgent.indexOf("MSIE")!=-1);
if(!isIE) {
	// prototying the XMLDocument
	XMLDocument.prototype.selectNodes = function(cXPathString, xNode) {
		if( !xNode ) {
			xNode = this;
		} 
		var oNSResolver = this.createNSResolver(this.documentElement)
		var aItems = this.evaluate(cXPathString, xNode, oNSResolver, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null)
		var aResult = [];
		for( var i = 0; i < aItems.snapshotLength; i++) {
			aResult[i] =  aItems.snapshotItem(i);
		}
		return aResult;
	}

	// prototying the Element
	Element.prototype.selectNodes = function(cXPathString) {
		if(this.ownerDocument.selectNodes) {
			return this.ownerDocument.selectNodes(cXPathString, this);
		}
		else{throw "For XML Elements Only";}
	}


	// prototying the XMLDocument
	XMLDocument.prototype.selectSingleNode = function(cXPathString, xNode) {
		if( !xNode ) { xNode = this; }
		var xItems = this.selectNodes(cXPathString, xNode);
		if( xItems.length > 0 ) {
			return xItems[0];
		}
		else {
			return null;
		}
	}
   
	// prototying the Element
	Element.prototype.selectSingleNode = function(cXPathString) {
		if(this.ownerDocument.selectSingleNode) {
			return this.ownerDocument.selectSingleNode(cXPathString, this);
		}
		else {
			throw "For XML Elements Only";
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?