Dom動態移動元素

動態移動dom元素

移動元素包括向左和向右移動選中的,向左和向右移動全部的

我們以下面的html代碼爲例:

<body>

//要移動的元素

<select multiple="multiple" size="10" id="ldatas">

<option>選項1</option>

<option>選項2</option>

<option>選項3</option>

<option>選項4</option>

<option>選項5</option>

<option>選項6</option>

<option>選項7</option>

<option>選項8</option>

<option>選項9</option>

<option>選項10</option>

</select>

//移動的按鈕

<input type="button" id="rmove" value="-->" οnclick="removeRight()"/>
<input type="button" id="rmoveAll" value="==>" οnclick="moveAllRight()"/>
<input type="button" id="lmoveOne" value="<--" οnclick="removeLeft()"/>
<input type="button" id="lmoveAll" value="<==" οnclick="moveAllLeft()"/>

//要移動的目的地

<select multiple="multiple" size="10" id="rdatas">

</select>

</body>

1.首先來看向右移動全部的代碼解析:

function moveRightAll(){

//獲取右移的節點對象

var lrmoveAllNode = get("rmoveAll");

//添加事件

rmoveAll.onclick = function(){

//select節點的獲取

var ldataNode = get("ldatas");

//獲取該節點下面的所有的option節點對象

var loptionsNode = ldataNode.getElementsByTagName("option");

//獲取要添加到的節點對象

var rdatasNode = get("rdatas");

//如果把loptionsNode.length放到for中是變值

var lengths = loptionsNode.length;//定值

for(var i = 0;i<lengths;i++){

//ldatasNode 個數10 始終移第一個

rdatasNode.appendChild(loptionsNode[0]);

}

}

}.

2. 向左移動全部的元素節點:

//向左移動全部節點

function moveAllLeft(){

var lmoveAllNode = get("lmoveAll");

lmoveAllNode.onclick = function(){

//獲取左移節點的對象

var rdataNode = get("rdatas");

//獲取左移的所有的option節點

var roptionsNode = rdataNode.getElementsByTagName("option");

//獲取左邊的節點對象

var ldatasNode = get("ldatas");

var lengths = roptionsNode.length;//定值

for (var i = 0; i < lengths; i++) {

//ldatasNode 個數10 始終移第一個

ldatasNode.appendChild(roptionsNode[0]);

}

}

}

3.單向向右移動

//向右移動全部節點

function moveAllRight(){

//獲取右移的節點對象

var lrmoveAllNode = get("rmoveAll");

//添加事件

rmoveAll.onclick = function(){

//select節點的獲取

var ldataNode = get("ldatas");

//獲取該節點下面的所有的option節點對象

var loptionsNode = ldataNode.getElementsByTagName("option");

//獲取要添加到的節點對象

var rdatasNode = get("rdatas");

//如果

//如果把loptionsNode.length放到for中是變值

var lengths = loptionsNode.length;//定值

for (var i = 0; i < lengths; i++) {

//ldatasNode 個數10 始終移第一個

rdatasNode.appendChild(loptionsNode[0]);

}

}

}

4.單向向左移動

function removeLeft(){

//往左移

var rmoveNode = get("lmoveOne");

rmoveNode.onclick = function(){

//獲取右邊節點中的所有的option

var rdatasNode = get("rdatas");

//獲取option對象

var loptionsNode = rdatasNode.getElementsByTagName("option");

//獲取左邊節點

var ldatasNode = get("ldatas");

for (var i = 0; i < loptionsNode.length; i++) {

if (loptionsNode[i].selected) {

ldatasNode.appendChild(loptionsNode[i]);

i--;

}

}

}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章