了解数组中的队列方法,DOM中节点的一些操作
队列的概念
栈是一种后进先出的结构,而队列是一种先进先出的结构。如银行排队,排在前面的人先办业务然后离开,后来的人站在最后。可以用队列的push()方法插入元素到队列的末尾,可以用shift()方法删除第一个元素。
模拟队列进行插入、删除
在html中生成新的节点
var str1 = document.createElement("li");
然后在把这个节点插入到ul中
ul.appendChild(str1);
在jquery中可以不用生成新的节点,直接用append()方法将它添加到上一个li后面
在第一个节点之前插入
insertBefore
定义
The insertBefore() method inserts a new child node before an existing child node.
insertBefore()
方法的作用是:在现有的子节点前插入一个新的子节点
用法
target.insertBefore(newChild,existingChild)
newChild作为target的子节点插入到existingChild节点之前
existingChild为可选项参数,当为null时其效果与appendChild一样
insertBefore例子
var oTest = document.getElementById("test");
var newNode = document.createElement("p");
newNode.innerHTML = "This is a test";
oTest.insertBefore(newNode,oTest.childNodes[0]);
找到最后一个节点
最后一个节点就是li的长度减一,当然这只是其中一种方法。
删除节点
ul.removeChild(Rout);
完整代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
#ul li{
list-style-type: none;
display: inline-block;
width: 20px;
height: 20px;
padding: 5px;
margin-right: 10px;
text-align: center;
background: red;
color: white;
}
</style>
</head>
<body>
<input type="text" id="text">
<input type="button" id="botton1" value="左侧入">
<input type="button" id="botton2" value="右侧入">
<input type="button" id="botton3" value="左侧出">
<input type="button" id="botton4" value="右侧出">
<ul id="ul">
<li>1</li>
</ul>
<script type="text/javascript">
window.onload = function() {
var text_value;
var Lenter = document.getElementsByTagName('input')[1];
var Renter = document.getElementsByTagName('input')[2];
var Lquit = document.getElementsByTagName('input')[3];
var Rquit = document.getElementsByTagName('input')[4];
var ul = document.getElementById('ul');
//var str1 = '';
Lenter.onclick = function() {
text_value = document.getElementById('text').value;
var str1 = document.createElement("li");
str1.innerHTML = text_value;
ul.insertBefore(str1,ul.childNodes[0]);
//text_value = null;
}
Renter.onclick = function() {
text_value = document.getElementById('text').value;
var str1 = document.createElement("li");
str1.innerHTML = text_value;
ul.appendChild(str1);
}
Lquit.onclick = function() {
var Lout = ul.getElementsByTagName('li')[0];
console.log(Lout)
ul.removeChild(Lout);
}
Rquit.onclick = function() {
var length = ul.getElementsByTagName('li').length;
var Rout = ul.getElementsByTagName('li')[(length-1)];
ul.removeChild(Rout);
}
}
</script>
</body>
</html>
了解数组中的队列方法,DOM中节点的一些操作的更多相关文章
- 【转载】 C#中使用Sum方法对List集合进行求和操作
在C#的List操作中,有时候我们需要对List集合对象的某个属性进行求和操作,此时可以使用Lambda表达式中的Sum方法来快速实现此求和操作,使用Sum方法可使代码简洁易读,并且省去写for循环或 ...
- msdn 中MethodBase.Invoke 方法 介绍中的坑
模块开发总结: c#动态调用webservices 来自网络及使用心得. msdn: MethodBase.Invoke 方法 (Object, Object[]) 使用指定的参数调用当前实例所表示的 ...
- 浅谈jQuery中的eq()与DOM中element.[]的区别
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- react中在hooks方法useEffect中加载异步数据
useEffect( ()=>{ (async function getPipeList(value:any) { let result= await GetPipeList(value); s ...
- JavaScript高级程序设计--对象,数组(栈方法,队列方法,重排序方法,迭代方法)
1.使用对象字面量定义对象 var person={}; 使用这种方式创建对象时,实际上不会调用Object构造函数. 开发人员更喜欢对象字面量的语法. 2.有时候需要传递大量可选参数的情形时,一 ...
- 49. ArrayList LinkedList中特有的方法
集合的体系:--------------| Collection 单列集合的根接口 ----------| List 如果实现了List接口的集合类,该类具备的特点是:有序,可重复 ------|A ...
- DOM 中 Property 和 Attribute 的区别
原文地址:http://web.jobbole.com/83129/ property 和 attribute非常容易混淆,两个单词的中文翻译也都非常相近(property:属性,attribute: ...
- [转]DOM 中 Property 和 Attribute 的区别
angular的文档: https://angular.io/guide/template-syntax#property-binding https://blog.csdn.net/sunq1982 ...
- DOM 中 Property 和 Attribute 的区别(转)
property 和 attribute非常容易混淆,两个单词的中文翻译也都非常相近(property:属性,attribute:特性),但实际上,二者是不同的东西,属于不同的范畴. property ...
随机推荐
- ShoneSharp语言(S#)的设计和使用介绍系列(1)— 开篇
ShoneSharp语言(S#)的设计和使用介绍 系列(1)- 开篇 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp. 一 ...
- parquet列式文件实战
前言 列式文件,顾名思义就是按列存储到文件,和行式存储文件对应.保证了一列在一个文件中是连续的.下面从parquet常见术语,核心schema和文件结构来深入理解.最后通过java api完成writ ...
- static,final,包,访问修饰符,内部类
static 关键字可以修饰成员变量,被static修饰的成员变量归属于类static关键字可以修饰成员方法:被static修饰的成员方法可以直接使用类名调用,也可以通过对象调用,建议使用类名.非静态 ...
- ThinkPHP中ajax绑定select下拉框无法显示
html代码: 控制器代码: 其中的<option value="{$vo.gradeId}">{$one.gradeName}</option> 在操作过 ...
- Python入门 - 面向对象
python很好的支持面向对象编程,本节主讲类的定义,类的构造方法,类的继承与方法重写,类的多继承. 一.类的定义 class Myclass() : def prt(self, str) : pri ...
- CORS预检请求详谈
引言 最近在项目中因前后端部署不同地方,前端在请求后端api时发生了跨域请求,我们采用CORS(跨域资源共享)来解决跨域请求,这需要前后端的配合来完成.在这一过程中,后端支持了CORS跨域请求后,前端 ...
- maven的安装配置以及在IDEA中配置
一.下载maven: 1.maven官网:http://maven.apache.org/download.cgi 二.安装配置 1.下载后解压到本地目录,如图 2.配置环境变量:我的电脑右键-> ...
- 企业级Tomcat安全管理优化方案
telnet管理端口保护 1. 修改默认的8005管理端口为不易猜测的端口(大于1024): <Server port=" shutdown="dangerous" ...
- TCP头部分析与确认号的理解
1.TCP的特点: 基于字节流面向连接可靠传输缓冲传输全双工流量控制 2.头部格式和说明 图源百度.如下图示,就是TCP包的头部结构.可以看到这个头部最少有4x5=20个字节. 另外还需要理解TCP协 ...
- ChromeExtension那些事儿
Chrome Extension是什么呢? 简而言之,就是Chrome扩展,它是基于Chrome浏览器的,我们可以理解它为一个独立运行在Chrome浏览器下的APP,当然核心编程语言就是JavaScr ...