编辑函数,封装myChildren功能,解决以前部分浏览器的兼容性问题。
<script type="text/javascript">
Element.prototype.myChildren = function() {
var child = this.childNodes;
var len = child.length;
var arr = [];
for(var i = 0; i < len; i++)
{
if(child[i].nodeType == 1){
arr.push(child[i]);
}
}
return arr;
}
</script>
编辑函数,封装hasChildren()方法,不可用children属性。
<script type="text/javascript">
Element.prototype.myhasChildren = function() {
var child = this.childNodes;
var len = child.length;
var arr = [];
for(var i = 0; i < len; i++)
{
if(child[i].nodeType == 1){
return true;
}
}
return false;
}
</script>
封装函数insertAfter();功能类似insertBefore();
<script type="text/javascript">
Element.prototype.insertAfter = function(targetNode, afterNode) {
var beforeNode = afterNode.nextElementSibling;
if(beforeNode == null){
this.appendChild(targetNode);
}else{
this.insertBefore(targetNode, beforeNode)
}
}
</script>
将目标节点内部的节点顺序逆序
eg: <div> <a></a><em></em></div>
逆序后:<div><em></em><a></a></div>
<script type="text/javascript">
Element.prototype.reverseElement = function() {
var child = this.children;
var len = child.length;
for(var i = len - 2; i >= 0; i--){
this.appendChild(child[i]);
}
}
var div = document.getElementsByTagName('div')[0];
</script>