/* js操作css注意:关于位置的css必须必须要加上"px"这个像素单位 */ function DomHelper() { this.obj = null; } //获取该对象所有子节点的类型, DomHelper.prototype.childNodesType = function (obj) { var arrChildNodes = new Array(); var childNodes = obj.childNodes; for (var i = 0; i < childNodes.length; i++) { arrChildNodes[i] = childNodes[i].nodeType; } return arrChildNodes; } //根据节点类型和节点的属性获取该节点的引用 DomHelper.prototype.getElementByAttr = function (oParentNode, sNodeLable, sAttr) { var oElements = oParentNode.getElementsByTagName(sNodeLable); var sAttrName = sAttr.split(":")[0]; var sAttrValue = sAttr.split(":")[1]; var oElement = null; for (var i = 0; i < oElements.length; i++) { if (oElements[i].getAttribute(sAttrName) == sAttrValue) { oElement = oElements[i]; break; } } return oElement; } DomHelper.prototype.getElementsByAttr = function (oParentNode, sNodeLable, sAttr) { var oElements = oParentNode.getElementsByTagName(sNodeLable); var sAttrName = sAttr.split(":")[0]; var sAttrValue = sAttr.split(":")[1]; var arrElements = new Array(); for (var i = 0; i < oElements.length; i++) { if (oElements[i].getAttribute(sAttrName) == sAttrValue) { arrElements.push(oElements[i]); } } return arrElements; } //添加事件 DomHelper.prototype.addEvent = function (obj, event, fnHandle) { if (bomHelper.ie != "") { obj.attachEvent("on" + event, fnHandle); } else if (bomHelper.firefox != "" || bomHelper.chrome != "") { obj.addEventListener(event, fnHandle, false); } else { obj["on" + event] = fnHandle; } } //删除事件 DomHelper.prototype.delEvent = function (obj, event, fnHandle) { if (bomHelper.ie != "") { obj.detachEvent("on" + event, fnHandle); } else if (bomHelper.firefox != "" || bomHelper.chrome != "") { obj.removeEventListener(event, fnHandle, false); } else { obj["on" + event] = null; } } //格式化事件 DomHelper.prototype.formatEvent = function (oEvent) { if (bomHelper.ie != "") { oEvent = window.event; oEvent.charCode = (oEvent.type == "keypress") ? oEvent.keyCode : 0; oEvent.phase = 2; oEvent.isChar = (oEvent.charCode > 0); oEvent.pageX = oEvent.clientX + document.body.scrollLeft; oEvent.pageY = oEvent.clientY + document.body.scrollTop; oEvent.preventDefault = function () { this.returnValue = false; //阻止窗口的默认事件,如oncontextmenu来阻止鼠标右键 } if (oEvent.type == "mouseout") oEvent.relatedTarget = oEvent.toElement; else if (oEvent.type == "mouseover") oEvent.relatedTarget = oEvent.fromElement; oEvent.stopPropagation = function () { this.cancelBubble = true; //阻止冒泡事件 } oEvent.target = oEvent.srcElement; oEvent.time = (new Date()).getTime(); } return oEvent; } //去除firefox、chrome等浏览器的无用文本节点 DomHelper.prototype.formatChildNode = function (oNode) { if (bomHelper.ie != "") return; //若为IE则不执行下面的代码 var arrChildNodes = oNode.childNodes; for (var i = arrChildNodes.length - 1; i >= 0; i--) { if (arrChildNodes[i].nodeType == 3) { oNode.removeChild(arrChildNodes[i]); } } } //获取某元素相对于body的坐标 DomHelper.prototype.getPosition = function (obj) { var _o = obj; var _left = _o.offsetLeft; var _top = _o.offsetTop; var _width = _o.offsetWidth; var _height = _o.offsetHeight; if (_o.offsetParent) { while (_o = _o.offsetParent) { _left += _o.offsetLeft; _top += _o.offsetTop; } } else if (_o.x) { _left += _o.x; _top += _o.y; } return { "left": _left, "top": _top, "width": _width, "height": _height }; } var domHelper = new DomHelper();