ListBox中的options可以使用特殊的
swapNode 來將二個options位置對調,
但FireFox與Chrome 皆不支援此功能。
因此在 swapNode 的時候判斷是否支援 swapNode 功能,
若不支援則採用另一段程式。
在尋找解決 swapNode 在FF及Chrome不支援問題時找到部分參考內容,
swapNode in FireFox 這篇的內容似乎不適用於ListBox的項目,
可能用於Tree的功能,留著參考。
下列程式用於同一個ListBox下順序對調。
function ListSort(IName)
{
var tTarget = document.getElementById(IName);
for(var i = 0 ; i < tTarget.options.length ; i++)
{
var intTar = i ;
for(var j = i ; j < tTarget.options.length ; j++)
{
if(parseInt(tTarget.options[j].value) < parseInt(tTarget.options[intTar].value))
{
intTar = j;
}
}
if(intTar != i)
{
document.swapNode? tTarget.options[i].swapNode(tTarget.options[intTar]):swapNodes(tTarget,i,intTar);
}
}
}
function swapNodes(tTarget,i,intTar)
{
var itemtmp = tTarget.options[i];
tTarget.options[i] = tTarget.options[intTar];
tTarget.options[intTar] = itemtmp;
itemtmp = null;
}
但FireFox與Chrome 皆不支援此功能。
因此在 swapNode 的時候判斷是否支援 swapNode 功能,
若不支援則採用另一段程式。
在尋找解決 swapNode 在FF及Chrome不支援問題時找到部分參考內容,
swapNode in FireFox 這篇的內容似乎不適用於ListBox的項目,
可能用於Tree的功能,留著參考。
下列程式用於同一個ListBox下順序對調。
function ListSort(IName)
{
var tTarget = document.getElementById(IName);
for(var i = 0 ; i < tTarget.options.length ; i++)
{
var intTar = i ;
for(var j = i ; j < tTarget.options.length ; j++)
{
if(parseInt(tTarget.options[j].value) < parseInt(tTarget.options[intTar].value))
{
intTar = j;
}
}
if(intTar != i)
{
document.swapNode? tTarget.options[i].swapNode(tTarget.options[intTar]):swapNodes(tTarget,i,intTar);
}
}
}
function swapNodes(tTarget,i,intTar)
{
var itemtmp = tTarget.options[i];
tTarget.options[i] = tTarget.options[intTar];
tTarget.options[intTar] = itemtmp;
itemtmp = null;
}
全站熱搜