进阶JavaScript练习Task1

这篇博客介绍了如何使用JavaScript模拟队列操作,包括从左侧和右侧插入、删除元素,以及展示队列元素的功能。通过Google Chrome浏览器和Visual Studio Code进行开发,提供了HTML、CSS和JS的实现步骤,读者可以跟随教程完成一个交互式的队列操作应用。
摘要由CSDN通过智能技术生成

浏览器:Google Chrome
编译器:Visual Studio Code

任务目的

  • 模拟一个队列,队列的每个元素是一个数字,初始队列为空
  • 有一个input输入框,以及4个操作按钮
    1. 点击"左侧入",将input中输入的数字从左侧插入队列中;
    2. 点击"右侧入",将input中输入的数字从右侧插入队列中;
    3. 点击"左侧出",读取并删除队列左侧第一个元素,并弹窗显示元素中数值;
    4. 点击"右侧出",读取并删除队列又侧第一个元素,并弹窗显示元素中数值;
  • 点击队列中任何一个元素,则该元素会被从队列中删除

先写html片段

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
        <title>进阶task1</title>
        <link href="css/task1.css" rel="stylesheet">
    </head>
    <body>
        <div id="container">
            <input id="inputValue" type="number">
            <button class="btn" id="left_in_btn">左侧入</button>  <!--左右就相当于元素的前后-->
            <button class="btn" id="right_in_btn">右侧入</button>
            <button class="btn" id="left_out_btn">左侧出</button>
            <button class="btn" id="right_out_btn">右侧出</button>
            <p id="queue"></p>
        </div>
        <script type="text/javascript" src="js/task1.js"></script>
    </body>
</html>

再写css片段

#container
{
	margin: 20px;
}
.btn
{
	border-radius:3px;
	background-color:#fff;
	width:80px;
	margin-right:5px;
}
#right_in_btn
{
	margin-right:40px;
}
#queue
{
	margin-top:5px;
}
.box      /*js创建元素所需要的类名*/
{
	display:inline-block;
	min-width:40px;     /*防止数字长度太短导致不美观*/
	height:40px;
	background-color:#ff0000;
	color:#fff;
	font-size:20px;
	text-align:center;
	padding-top:10px;
	margin-right:5px;
}

js

  1. 先写获取点击
function init()
{
    var left_in_btn = document.getElementById("left_in_btn");
    left_in_btn.onclick = leftIn;
    var right_in_btn = document.getElementById("right_in_btn");
    right_in_btn.onclick = rightIn;
	var left_out_btn = document.getElementById("left_out_btn");
	left_out_btn.onclick = leftOut;
	var right_out_btn = document.getElementById("right_out_btn")
	right_out_btn.onclick = rightOut;
	var queue = document.getElementById("queue");
	queue.onclick = function
	{
	    queue.removeChild(event.target);
	}
}
  1. 完善点击分别对应的函数
function leftIn()
{
    var inputValue = document.getElementById("inputValue").value;
    if(inputValue.length > 0)
    {
        var newNode = createNode(inputValue);
		var queue = document.getElementById("queue");
		queue.insertBefore(newNode,queue.firstChild);
    }
}
function rightIn()
{
	var inputValue = document.getElementById("inputValue").value;  //获取输入的值
	if(inputValue.length > 0 )
	{
		var newNode = createNode(inputValue);  //调用createNode()
		var queue = document.getElementById("queue");
		queue.appendChild(newNode);    //接到p上
	}
}
function leftOut()
{
	var queue = document.getElementById("queue");
	if(queue.childNodes.length > 0)
	{
		queue.removeChild(queue.firstChild);	
	}
}
function rightOut()
{
	var queue = document.getElementById("queue");
	var len = document.getElementById("queue").childNodes.length;
	if(len>0)
	{
		queue.removeChild(queue.lastChild);
	}
}
function createNode(num)
{
	var newItem = document.createElement("span");
	var textNode = document.createTextNode(num);
	newItem.appendChild(textNode);
	newItem.setAttribute("class","box");
    return newItem;
}

转载注明出处:https://blog.csdn.net/qq_43526925/article/details/94617780

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZzDIY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值