队列的概念

栈是一种后进先出的结构,而队列是一种先进先出的结构。如银行排队,排在前面的人先办业务然后离开,后来的人站在最后。可以用队列的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中节点的一些操作的更多相关文章

  1. 【转载】 C#中使用Sum方法对List集合进行求和操作

    在C#的List操作中,有时候我们需要对List集合对象的某个属性进行求和操作,此时可以使用Lambda表达式中的Sum方法来快速实现此求和操作,使用Sum方法可使代码简洁易读,并且省去写for循环或 ...

  2. msdn 中MethodBase.Invoke 方法 介绍中的坑

    模块开发总结: c#动态调用webservices 来自网络及使用心得. msdn: MethodBase.Invoke 方法 (Object, Object[]) 使用指定的参数调用当前实例所表示的 ...

  3. 浅谈jQuery中的eq()与DOM中element.[]的区别

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. react中在hooks方法useEffect中加载异步数据

    useEffect( ()=>{ (async function getPipeList(value:any) { let result= await GetPipeList(value); s ...

  5. JavaScript高级程序设计--对象,数组(栈方法,队列方法,重排序方法,迭代方法)

    1.使用对象字面量定义对象 var person={}; 使用这种方式创建对象时,实际上不会调用Object构造函数. 开发人员更喜欢对象字面量的语法.   2.有时候需要传递大量可选参数的情形时,一 ...

  6. 49. ArrayList LinkedList中特有的方法

    集合的体系:--------------| Collection  单列集合的根接口 ----------| List 如果实现了List接口的集合类,该类具备的特点是:有序,可重复 ------|A ...

  7. DOM 中 Property 和 Attribute 的区别

    原文地址:http://web.jobbole.com/83129/ property 和 attribute非常容易混淆,两个单词的中文翻译也都非常相近(property:属性,attribute: ...

  8. [转]DOM 中 Property 和 Attribute 的区别

    angular的文档: https://angular.io/guide/template-syntax#property-binding https://blog.csdn.net/sunq1982 ...

  9. DOM 中 Property 和 Attribute 的区别(转)

    property 和 attribute非常容易混淆,两个单词的中文翻译也都非常相近(property:属性,attribute:特性),但实际上,二者是不同的东西,属于不同的范畴. property ...

随机推荐

  1. dnsmasq服务的安装与配置

    在ubuntu16.04上安装dnsmasq服务,在本地做泛域名解析 安装 $ apt-get install dnsmasq -y $ /etc/init.d/dnsmasq start 配置 Dn ...

  2. RPC是什么

    RPC是什么? 通俗的讲就是,调用远程计算机上的服务,就像调用本地服务一样.通常包含传输协议和编码协议. RPC可以基于HTTP或TCP协议,但基于HTTP协议的RPC性能却不如基于TCP协议的RPC ...

  3. 迭代操作-->c:forEach和c:forTokens

    jstl--->Core 核心标签库-->c:forEach 在页面上遍历后台传到前台的数据是最基本的最常用的方法  主要包含两种迭代操作:forEach和forTokens 语法1:迭代 ...

  4. 【NOIP2014提高组】联合权值

    https://www.luogu.org/problem/show?pid=1351 既然是一棵树,就先转化成有根树.有根树上距离为2的点对,路径可能长下面这样: 枚举路径上的中间点X. 第一种情况 ...

  5. 采用Opserver来监控你的ASP.NET项目系列(二、监控SQL Server与Asp.Net项目)

    前言 之前有过2篇关于如何监控ASP.NET core项目的文章,有兴趣的也可以看看. 今天我们主要来介绍一下,如何使用Opserver监控我们的SQL Server 和ASP.NET项目的异常监控 ...

  6. 开发指南专题六:JEECG微云高速开发平台代码生成

    开发指南专题六:JEECG微云高速开发平台代码生 1.1. 代码生成扫描路径配置 用代码生成器生成代码后.须要进行相关配置配置,扫描注入control.service.entity等; 具体操作过程例 ...

  7. POJ 2631 Roads in the North(树的直径)

    POJ 2631 Roads in the North(树的直径) http://poj.org/problem? id=2631 题意: 有一个树结构, 给你树的全部边(u,v,cost), 表示u ...

  8. iOS_正則表達式

    iOS 正則表達式 正則表達式,又称正规表示法.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE).计算机科学的一个概念. 正則表達式使用单个字符 ...

  9. jQuery->JavaScript一览表

    比较jQuery与JavaScript的不同功能实现 CSS选择器 元素选择 // jQuery $("li").css("color", "red& ...

  10. JAVA入门[20]-Spring Data JPA简单示例

    Spring 对 JPA 的支持已经非常强大,开发者只需关心核心业务逻辑的实现代码,无需过多关注 EntityManager 的创建.事务处理等 JPA 相关的处理.Spring Data JPA更是 ...