最后,这是排序的算法,根据选定的节点数组,每个数组的行节点与行节点在父节点的选择标准元素相匹配;跳过每个叠代后的行节点就可知道当前数组的行节点的选择标准不超过被叠代的选择标准元素的数值。在此,数组的当前行节点在被叠代的行节点使用insertBefore的DOM方法前被插入到数组中,使用数组来控制节点参考的原因是任何对DOM的改变都将反映在由selectNodes方法返回的数组的顺序上,在这个数组中,节点的顺序不会改变因为我们对这些节点进行了叠代。
列表B包含了排序函数,代码很灵活,这个算法的最大限制因素在于行节点必需是命名过的行,您可以通过将选择标准设为元素名称的数组来自行添加排序条件,从而增强功能。您可以在选择标准中连接节点的值,添加数字来执行大于的条件,这也可以用于对文件夹中的文件排序,只需要给定它们排序的数值即可(也就是,文件夹设为1,文件设为2)。
列表B
<script language="JavaScript">
function sort(sortNode, sortOn)
{
var nodes = sortNode.selectNodes("row");
for (vari = 0; i < nodes.length; i )
{
var node = nodes[i];
var rows = node.selectNodes("row");
for (var n = 0; n < rows.length; n )
sort(node, sortOn);
var tests = node.parentNode.selectNodes("row");
for (varnd = 0; nd < tests.length; nd )
{
var test = tests[nd];
if (test.selectSingleNode(sortOn).text > node.selectSingleNode(sortOn).text)
{
test.parentNode.insertBefore(node, test);
break;
}
}
}
}
</script>
评论加载中…
![]() |