當(dāng)前位置:軟件學(xué)堂 > 資訊首頁 > 網(wǎng)絡(luò)編程 > 編程其他 > JS代碼改變列表項(xiàng)的上下順序

JS代碼改變列表項(xiàng)的上下順序

2012/10/25 18:12:25作者:佚名來源:網(wǎng)絡(luò)

移動端

【實(shí)例名稱】

JS代碼改變列表項(xiàng)的上下順序

【實(shí)例描述】

列表項(xiàng)的上下移動,是網(wǎng)頁中經(jīng)常使用的特效。本例通過一個(gè)簡單的例子,學(xué)習(xí)這種特效的制作。

【實(shí)例代碼】

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>標(biāo)題頁-學(xué)無憂(m.wangbatian.cn)</title>
</head>
<body>
<select size="10" name="select">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
<input type=button value=向上移動 onclick="doUp()">
<input type=button value=向下移動 onclick="doDown()">
<script>
function doOrder(select,sequence)  
//將上、下兩個(gè)方法合并成一個(gè)
{
   if (!select||select.selectedIndex==-1) 
//如果沒有選擇列表項(xiàng),不進(jìn)行任何操作
        return false;
   with (select)
   {   
    var newIndex = selectedIndex + sequence; 
//獲取移動后的索引
    var oldIndex = selectedIndex;         
//舊索引
    if (newIndex>=options.length||newIndex<0||sequence==0||newIndex<0) 
//判斷是否超出邊界
    {
        return false; 
    }
    options[newIndex].swapNode(options[oldIndex])  
//交換指定索引處的節(jié)點(diǎn)
 }
 return true;
}
function doUp()
{
   doOrder(document.all.select,-1);  
//向上移動的方法
}
function doDown()
{
   doOrder(document.all.select,1);   
//向下移動的方法
}
</script>
</body>
</html>
 

【運(yùn)行效果】

運(yùn)行效果

【難點(diǎn)剖析】

本例的重點(diǎn)是要移動的元素的舊位置和新位置,舊位置使用“selected Index”屬性獲取,新位置根據(jù)選擇的是‘‘向上移動”還是“向下移動”,下就“+1”,上就“一1”。最后使用“swapNode’’方法實(shí)現(xiàn)新舊位置互換。

【源碼下載】

本實(shí)例JS代碼下載

 

標(biāo)簽: JS代碼  列表項(xiàng)