- 贴心猫(Imcat)
- 贴心代码
- 详情
js交换两个结点的位置
发布:2013-08-26 16:09
点击277次
评论:0条
echo <<<CODE
<!--?>-->
<style>a.mtb_floatside{ float:left; padding:0px 5px; };</style>
<script language="JavaScript" type="text/javascript">
function mtb_cleanWhitespace(element) {
for (var i = 0; i < element.childNodes.length; i++) { //遍历element的子结点
var node = element.childNodes[i];
if (node.nodeType == 3 && !/S/.test(node.nodeValue)) //判断是否是空白文本结点,如果是,则删除该结点
node.parentNode.removeChild(node);
}
}
function mtb_FindTable(tagname,string){
var objs = document.getElementsByTagName(tagname);
for (var i=0; i<objs.length; i++) {
tmp = objs[i].innerHTML;
if(tmp.indexOf(string)>0) return objs[i];
}
return null;
}
function mtb_SetOrder(tab,id1,id2){
rows = tab.getElementsByTagName('tr');
v1 = rows[id1].getElementsByTagName('span')[0].innerHTML;
v2 = rows[id2].getElementsByTagName('span')[0].innerHTML;
ord = document.getElementById('fmext[ordstr]'); //document.getElementById('fmext[ordstr]');
ordstr = ord.value; ordbak = ordstr;
ordstr = ordstr.replace(','+v1+')',',!@)');
ordstr = ordstr.replace(','+v2+')',','+v1+')');
ordstr = ordstr.replace(',!@)',','+v2+')');
ord.value = ordstr; //alert(ordbak+'\\n'+ordstr+'\\n'+ord.value);
}
//var _table=document.getElementById("table1");
var _table=mtb_FindTable('table','mtb_moveDown(this)');
//cleanWhitespace(_table);
function mtb_moveUp(_a){
var _row=_a.parentNode.parentNode; //通过链接对象获取表格行的引用
var _par=_row.parentNode;
var _trs=_par.getElementsByTagName('tr');
var _pos=_row.rowIndex; //alert(_pos);
if(_pos>0){ //如果不是第一行,则与上一行交换顺序
mtb_SetOrder(_par,_pos,_pos-1);
mtb_swapNode(_row,_trs[_pos-1]);
}
}
function mtb_moveDown(_a){
var _row=_a.parentNode.parentNode; //通过链接对象获取表格行的引用
var _par=_row.parentNode;
var _trs=_par.getElementsByTagName('tr');
var _pos=_row.rowIndex; //alert(_pos);
if(_pos<_trs.length-1){ //如果不是最后一行,则与下一行交换顺序
mtb_swapNode(_row,_trs[_pos+1]);
}
}
//定义通用的函数交换两个结点的位置
function mtb_swapNode(node1,node2){
var _parent=node1.parentNode; //获取父结点
var _t1=node1.nextSibling; //获取两个结点的相对位置
var _t2=node2.nextSibling;
if(_t1)_parent.insertBefore(node2,_t1); //将node2插入到原来node1的位置
else _parent.appendChild(node2);
if(_t2)_parent.insertBefore(node1,_t2); //将node1插入到原来node2的位置
else _parent.appendChild(node1);
}
</script>
CODE;
#<?