了解数组中的队列方法,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 ...
随机推荐
- hadoop2.5的伪分布式安装配置
一.windows环境下安装 根据博主写的一次性安装成功了: http://blog.csdn.net/antgan/article/details/52067441 二.linux环境下(cento ...
- OC的内存管理和@class
1. 基本原理 1. 什么是内存管理 ➢ 移动设备的内存极其有限,每个app所能占用的内存是有限制的 ➢ 当app所占用的内存较多时,系统会发出内存警告,这时得回收一些不需要再使用的内存空间.比如回收 ...
- 13. ZooKeeper最佳实践
以下列举了运行和管理ZooKeeper ensemble的一些最佳实践: ZooKeeper数据目录包含快照和事务日志文件.如果autopurge选项未启用,定期清理目录是一个好习惯.另外,管理员可能 ...
- jQuery操作input改变value属性值
今天写了一个表单元素,在用户点击的时候会清空input中的内容,当鼠标点击其他地方的时候会把输入的值保存为input的value值 类似于这样的效果 当用户点击的时候文字消失. html代码 < ...
- VMware12提示 已将该虚拟机配置为使用 64 位客户机操作系统。但是,无法执行 64 位操作。
VMware12提示 已将该虚拟机配置为使用 64 位客户机操作系统.但是,无法执行 64 位操作. 此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态 解决办法: 下载LeoM ...
- THinkPHP简单漂亮的分页类 DownLoad
PHP include_once("config.php"); require_once('page.class.php'); //分页类 $showrow = 10; //一页显 ...
- JAVA中静态修饰符static的学习(初学)
静态修饰符static,用于修饰类中的成员变量和成员函数. 用static修饰的成员变量也可叫做类变量. 什么时候使用静态 什么时候定义静态成员变量? 当对象中出现共享数据时,将该数据定义为静 ...
- python 正则的使用 —— 编写一个简易的计算器
在 Alex 的博客上看到的对正则这一章节作业是编写一个计算器,要求能计算出下面的算式. 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 + ...
- http请求HttpClient短信接口
项目中安全设置找回密码的功能,需要通过发送短信验证绑定手机,通过绑定的手机号验证并重新设置密码. 因为项目是通过maven管理的,所以需要在pom.xml文件中引入jar包, maven引入的jar包 ...
- Material04 MdCardModule和MdButtonModule综合运用
设计需求:设计一个登陆页面 1 模块导入 1.1 将MdCardModule和MdButtonModule模块导入到共享模块中 import { NgModule } from '@angular/c ...