本次练习错误总结:

1. for循环要套到按钮的onclick里面,否则onclick点击事件无法依次执行。

2. var n1, var n2 这两个变量是arr.sort排序使用的,所以应该放在sort() 函数里面。

3.arr.sort(function (li1,li2) 这个排序函数的li1, li2表示的是arr[ ] 这个数组里随机的两个数,这个命名和之前的aLi无关。不需要调用aLi为变量。

4. for循环    for ( ) 条件语句末尾一定不能写分号。   分号表示该段运行结束。   条件语句末尾写上分号,for循环的函数就无法依次执行。

注意点:

1. parseInt  把字符串转换为数字,  方便排序。

2. 数组排序。  (a, b)表示该数组中的随机数。

arr.sort (function(a, b)) {

};

正确代码

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>排序</title>
<script>
window.onload = function () {
var oBtn = document.getElementById('btn1');
var oUl = document.getElementById('ul1'); oBtn.onclick = function () {
var aLi = oUl.getElementsByTagName('li');
var arr = []; for ( var i=0; i<aLi.length; i++){ //for循环的括号后面绝对不能加分号!!!!
arr[i] = aLi[i];
} arr.sort(function (li1,li2) {
var n1 = parseInt(li1.innerHTML);
var n2 = parseInt(li2.innerHTML);
return n1-n2;
}); for (var j=0; j<arr.length; j++) {
oUl.appendChild(arr[j]);
}
}
}
</script>
</head>
<body>
<input id="btn1" type="button" value="排序">
<ul id="ul1">
<li>12</li>
<li>72</li>
<li>114</li>
<li>5552</li>
<li>78</li>
<li>3</li>
</ul>
</body>
</html>

第一次的错误代码

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>排序</title>
<script>
window.onload = function () {
var oUl = document.getElementById('ul1');
var oBtn = document.getElementById('btn1');
var aLi = oUl.getElementsByTagName('li');
var arr = []; for (var i=0; i<aLi.length; i++) // for循环要套到按钮的onclick里面!!!!
{
arr[i] = aLi[i];
}
oBtn.onclick = function () //onclick事件在前,for循环在后!
{
var n1 = parseInt(aLi[i].innerHTML)
//这两个变量是arr.sort排序使用的,所以应该放在sort函数里面。。
//可以试一下放在外面能不能顺利执行
var n2 = parseInt(aLi[i].innerHTML) arr.sort(function (aLi1,aLi2) { //这个函数的参数怎么写??
return n1-n2;
})
}
}
</script>
</head>
<body>
<input id="btn1" type="button" value="排序">
<ul id="ul1">
<li>266</li>
<li>115</li>
<li>86</li>
<li>6</li>
<li>420</li>
</ul>
</body>
</html>

JS错误记录 - dom操作 - 排序的更多相关文章

  1. js中的DOM操作汇总

    一.DOM创建 DOM节点(Node)通常对应于一个标签,一个文本,或者一个HTML属性.DOM节点有一个nodeType属性用来表示当前元素的类型,它是一个整数: Element,元素 Attrib ...

  2. js练习【DOM操作】

    完成效果: 演示地址:http://codepen.io/anon/pen/jPbYWq HTML: <!DOCTYPE html> <html lang="en" ...

  3. [笔记]原生JS实现的DOM操作笔记

    原生JS实现的DOM一系列操作参考: 原生JavaScript封装DOM库 siblings: 原生JS-查找相邻的元素-siblings方法的实现 addClass,removeClass,hasC ...

  4. 【2017-03-28】JS基础、DOM操作

    一.JS基础 1.javascript功能 ⑴进行数据运算 ⑵控制浏览器功能 ⑶控制元素的属性.样式.内容 2.javascript位置和格式 可以放在html页的任意位置,也可以创建一个以js结尾的 ...

  5. React.js 小书 Lesson21 - ref 和 React.js 中的 DOM 操作

    作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson21 转载请注明出处,保留原文链接和作者信息. 在 React.js 当中你基本不需要和 DO ...

  6. ref 和 React.js 中的 DOM 操作

    在 React.js 当中你基本不需要和 DOM 直接打交道.React.js 提供了一系列的 on*方法帮助我们进行事件监听,所以 React.js 当中不需要直接调用 addEventListen ...

  7. JS核心之DOM操作 下

    目录: 1.节点类型之Document类型 2.节点类型之Element类型 3.节点类型之Text类型 4.综合小示例 -- 动态添加外部样式文件 5.查找元素的扩展方法 接上篇,我们先来看常用的三 ...

  8. JS中的DOM操作怎样添加、移除、移动、复制、创建和查找节点

    DOM操作怎样添加.移除.移动.复制.创建和查找节点? (1)创建新节点 createDocumentFragment() //创建一个DOM片段 createElement() //创建一个具体的元 ...

  9. JS中的DOM操作和事件

    [DOM树节点] DOM节点分为三大类: 元素节点. 属性节点. 文本节点: 文本节点.属性节点属于元素节点的子节点.操作时,均需要先取到元素节点,再操作子节点:可以使用getElement系列方法, ...

随机推荐

  1. bzoj3252: 攻略 优先队列 并查集 贪心

    考场上自己yy出来的做法..... Code: #include<cstdio> #include<algorithm> #include<queue> #incl ...

  2. MySql系列之表的数据类型

    存储引擎介绍 存储引擎即表类型,mysql根据不同的表类型会有不同的处理机制 什么是存储引擎 mysql中建立的库===>文件夹 库中建立的表===>文件 现实生活中我们用来存储数据的文件 ...

  3. 监控web服务(http,本地 / 远程监控nginx)

    监控 httpd 服务一: #!/bin/bash #描述: 秒级别监控 http 服务 while [ 1 -lt 2 ] do sleep 10 ai=`netstat -ntl | grep & ...

  4. DBCP2配置详细说明(中文翻译)

    http://blog.csdn.net/kerafan/article/details/50382998 common-dbcp2数据库连接池参数说明 由于commons-dbcp所用的连接池出现版 ...

  5. TI C66x DSP 四种内存保护问题 -之- 外设訪问corePac内部资源时的内存保护问题

    外设訪问corePac内部资源(L1,L2)时的内存保护等问题请參考以下两个blog.已经叙述的非常具体. "TI C66x DSP 系统events及其应用 - 2"," ...

  6. android内存释放处理

    不知道大家对android内存释放都做什么样的处理,本人接触android不久,近期开发小游戏的过程中,由于游戏界面组件较多.刚玩游戏的时候感觉还好,可是重复进入游戏界面玩几次之后,游戏就会卡顿,我瞬 ...

  7. UvaLive 6600 Spanning trees in a secure lock pattern 矩阵行列式

    链接:https://icpcarchive.ecs.baylor.edu/index.php? option=com_onlinejudge&Itemid=8&page=show_p ...

  8. C++学习笔记31,指向引用的指针(3)

    我们来看一个简单的指向引用的指针的样例. #include <iostream> using namespace std; int main(){ int x=10; int y=20; ...

  9. BZOJ1045: [HAOI2008]糖果传递&BZOJ1465: 糖果传递&BZOJ3293: [Cqoi2011]分金币

    [传送门:BZOJ1045&BZOJ1465&BZOJ3293] 简要题意: 给出n个数,每个数每次可以-1使得左边或者右边的数+1,代价为1,求出使得这n个数相等的最小代价 题解: ...

  10. Hadoop的多节点集群详细启动步骤(3或5节点)

    版本1 利用自己写的脚本来启动,见如下博客 hadoop-2.6.0-cdh5.4.5.tar.gz(CDH)的3节点集群搭建 hadoop-2.6.0.tar.gz的集群搭建(3节点) hadoop ...