JS学习第二课

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6         <script type="text/javascript">
 7             window.onload=function(){
 8                 var oBtn=document.getElementById(‘btn1‘)
 9                 var oUl=document.getElementById(‘ul1‘)
10                 var oTxt=document.getElementById(‘text1‘)
11                 oBtn.onclick=function(){
12                     var oLi=document.createElement(‘li‘)
13                     var aLi=oUl.getElementsByTagName(‘li‘)
14                     oLi.innerHTML=oTxt.value
15                     if(aLi.length>0){
16                         oUl.insertBefore(oLi,aLi[0])
17                     }
18                     else{
19                         oUl.appendChild(oLi)
20                     }
21                 }
22             }
23         </script>
24     </head>
25     <body>
26         <input type="text" id="text1" />
27         <input type="button" id="btn1" value="creat lis" />
28         <ul id="ul1"></ul>
29     </body>
30 </html>

创建DOM元素,这里有几个小事项需要注意。

第一:光写createlement是不够的,后面必须要和appendChild或者insertBefore搭配使用才会有创建DOM的效果。

第二:appendChild在IE7里是有问题的,注意看,我们的UL里一开始是没有li的,所以aLi[0]在IE7里是读不出来的。这里用了一个if else结构解决这个问题。

第三:我们这里实现了将Text里,我们输入的文字转到新建的li里。用的是innerHTML这个代码。


 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6         <script type="text/javascript">
 7             window.onload=function()
 8             {
 9                 var oUl=document.getElementById(‘ul1‘)
10                 var aA=document.getElementsByTagName(‘a‘)
11                 for(i=0;i<aA.length;i++){
12                     aA[i].onclick=function(){
13                         oUl.removeChild(this.parentNode)
14                     }
15                 }
16             }
17         </script>
18     </head>
19     <body>
20         <ul id="ul1">
21             <li>1111111111<a href="#">delete</a></li>
22             <li>2222222222<a href="#">delete</a></li>
23             <li>3333333333<a href="#">delete</a></li>
24             <li>4444444444<a href="#">delete</a></li>
25             <li>5555555555<a href="#">delete</a></li>
26         </ul>
27     </body>
28 </html>

这里只需要注意这点

oUl.removeChild(this.parentNode)

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6         <script type="text/javascript">
 7             window.onload=function(){
 8                 var oUl=document.getElementById(‘ul1‘)
 9                 var oFrag=document.createDocumentFragment()
10                 for(i=0;i<10000;i++){
11                     var oLi=document.createElement(‘li‘)
12                     oFrag.appendChild(oLi)
13                 }
14                 oUl.appendChild(oFrag)
15             }
16         </script>
17     </head>
18     <body>
19         <ul id="ul1"></ul>
20     </body>
21 </html>

文档碎片,理论上可提高性能。

时间: 2024-08-05 19:34:37

JS学习第二课的相关文章

Ext JS学习第二天 我们所熟悉的javascript(一)

此文用来记录学习笔记: •ExtJS是一个强大的javascript框架,如果想真正的掌握ExtJS,那么我们必须要对javascript有一定的认识,所以很有必要静下心来,抱着一本javascript书籍,恶补一番.推荐书籍<javascript高级程序设计>.<javascript设计模式>. •在这里我们学习一下可能你从未接触过的javascript,这些javascript知识是我们要学好ExtJS这个框架非常有必要的.必备的知识.我们需要掌握的内容有: –javascri

IOS学习第二课 UIAlertView和UIActionSheet

1    UIAlertView 类似于Android中的Dialog,简单用法如下: UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Title" message:@"Messate" delegate:nil cancelButtonTitle:@"Cancle" otherButtonTitles:nil, nil]; [alertView show]; 2   U

安卓学习第二课——短信发送器

package com.example.message; import android.app.Activity; import android.os.Bundle; import android.telephony.SmsManager; import android.text.TextUtils; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button;

注册表学习第二课

大家好,今天是注册表学习的第二课 好了,废话不多说了,我现在就来分享我的读书笔记吧 一.禁用菜单系统栏的属性 首先,按照HKEY_CURRENT_USER-software-microsoft-windows-currentversion -policies-explorer 新建一个DWORD值,命名为"NoSetTaskBar",将键值设为1 解释:修改这个注册表的用途就是,当我们点击系统栏的属性时,会出现如下提示 "本次操作由于这台电脑的限制而被取消,请与系统管理员联系

node.js学习第二天--进程管理

1.简介 process是一个全局内置对象,可以在代码中的任何位置访问此对象,这个对象代表我们的node.js代码宿主的操作系统进程对象. 使用process对象可以截获进程的异常.退出等事件,也可以获取进程的当前目录.环境变量.内存占用等信息,还可以执行进程退出.工作目录切换等操作. 下面我们一起来学习一下process对象的一些常用方法. 2.cwd函数的基本用法 当我们想要查看应用程序当前目录时,可以使用cwd函数,使用语法如下: process.cwd(); 获取程序目录的方法就是这样简

C 语言学习第二课

初次练习的源代码如下: #include<stdio.h> int main() { int num; num=1; printf("C语言是美丽的"); printf("编程语言 \n"); printf("我是最简单的数字啊\n"); printf("我最喜欢%d.\n",num); return 0; } 其调试及运行的结果如下: 下面我对其中涉及的详细介绍下:(程序细节介绍) #include<std

线程学习第二课--脱离线程,调度线程,取消线程,多线程

例如主线程继续为用户提供服务的同时创建第二个线程这个线程的作用是将用户正在编辑的数据进行备份存储那么备份结束之后第二个线程就可以字节终止没必要再回到主线程中区 称这样的线程为脱离线程,可以通过修改属性或者调用pthread_detach的方法来创建这里我们从属性的角度研究脱离线程 1 #include <pthread.h> 2 int pthread_atte_init(pthread_attr_t * attr); 函数的作用是初始化一个线程属性对象 对应的回收函数是pthread_att

JS学习第二天----JS语言核心

JS语言核心 有些东西,对于初学者来说,可能看不懂,我在这里只是想说一下,JS里面有这么个情况,并不是说让你掌握,你只需要大致浏览一下就可以了. // 所有在双斜杠之后的内容都属于注释 //变量是表示值的一个符号名字 //变量通过var关键字来声明,案例: var x;//声明一个变量x //值可以通过等号赋值给变量 x=0;  //现在变量x的值为0 x //=>0:通过变量获取其值 //JS支持多种数据类型 x=1; //数字 x=0.01; //整数和实数公用一种数据类型 x="he

Shell脚本学习第二课&#183;

Shell文件包含 shell也可以包含外部脚本,语法格式如下: . filename 或 source filename 例如创建两个shell脚本. 脚本1:test1.sh url = "www.baidu.com" 脚本2:test2.sh . ./test1.sh echo "$url" 执行test2.sh,即可看到结果. Shell输入输出重定向 命令 说明 command>file 将输出重定向到file command<file 将输入