队列的概念

栈是一种后进先出的结构,而队列是一种先进先出的结构。如银行排队,排在前面的人先办业务然后离开,后来的人站在最后。可以用队列的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. Python之可变类型与不可变类型

    Python常见的数据类型有:数字 字符串 元组 列表 字典 不可变类型:数字 字符串 元组 可变类型: 列表 字典 a = 100 b = [100] def num1(x): x += x pri ...

  2. java+jsp+sql server实现网页版四则运算.

    设计思路: 1需要的工具以及实现这个算法和代码的事先条件. (1)sql server里面建议一个叫t_result的表)(当然你起什么名字都可以),里面输入所需要的列名.id,firstnumber ...

  3. Resin4安装配置

    #Resin4安装配置 # Resin4安装配置 #centos6 #参考http://467754239.blog.51cto.com/4878013/1558435 #yum -y install ...

  4. windows配置git

    每次要使用git指令的时候都要去打开git bash 操作,太麻烦,要想直接在dos窗口下使用git指令需要再进行如下环境变量配置. 1.系统环境变量path添加:D://programFiles/g ...

  5. oracle中 常用的 join on 相关和 集合运算的总结

    sql常用联合查询的 join on . left join(左连接) . right join (右连接).inner join (等值连接)以及常用的集合运算有:union.unionall.mi ...

  6. node.js爬虫

    这是一个简单的node.js爬虫项目,麻雀虽小五脏俱全. 本项目主要包含一下技术: 发送http抓取页面(http).分析页面(cheerio).中文乱码处理(bufferhelper).异步并发流程 ...

  7. Hibernate框架进阶(下篇)之查询

    导读 Hibernate进阶篇分为上中下三篇,本文为最后一篇,主要内容是Hibernate框架的查询,主要包括hql语句查询,criteria查询以及查询策略的选择. 知识框架 Hibernate查询 ...

  8. JDBC详解系列(二)之加载驱动

    ---[来自我的CSDN博客](http://blog.csdn.net/weixin_37139197/article/details/78838091)---   在JDBC详解系列(一)之流程中 ...

  9. 》》canvas时钟

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  10. nyoj 123 士兵杀敌(四)【树状数组】+【插线问点】

    树状数组有两种情况:插点问线和插线问点.这道题是插线问点. 由于树状数组最简单的作用是计算1~x的和,所以给出(a, b. c).表示(a,b)区间添加c, 那我们仅仅须要在a点原来的基础上添加c,然 ...