博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
再战JavaScript
阅读量:5790 次
发布时间:2019-06-18

本文共 2646 字,大约阅读时间需要 8 分钟。

下面我们接着介绍创建节点。

创建节点,插入节点的方式,就好像是买一个大袋子,一个大袋子里装着一些小袋子,小袋子里分别装着不同的东西。

我们来看看代码就一目了然了:

大袋子(city)里装着很多小袋子(li),小袋子里装着不同的东西(不同的城市名字的文本),没错吧?很简单。

难道JavaScript只能支持这么low的做法吗?当然不是,还可以在现有已经存在的节点中互换双方的位置。当然,需要一个中间变量做转换。

代码如下:

下面我们要介绍一下弹出可以选择是和否的对话框,也就是confirm()方法了。

练习需求:为每一个li节点添加一个confirm(),若确定,则删除,结合我们的removeChild()方法,这个练习so easy。

代码如下:

JavaScript还提供了insertBefore()方法,允许我们可以将某节点插入到指定节点的前面。

代码如下:

//把#hj插入到#bj的前面var cityNode = document.getElementById("city");var bjNode = document.getElementById("bj");var hjNode = document.getElementById("hj");cityNode.insertBefore(hjNode, bjNode);

但是并没有提供insertAfter()方法。那我们就自定义一个吧!

思路是这样的:先检查指定节点是否为父节点的最后一个节点。如果是,那就直接appendChild(),因为这个方法默认放到最后;如果不是,那么就获取下一个节点,也就是.nextSibling()方法,然后再使用insertBefore()方法。

代码如下:

下面我们要做几个练习,HTML文档如下:

你喜欢哪个城市?

  • 北京
  • 上海
  • 东京
  • 首尔

你喜欢哪款单击游戏?

  • 红警
  • 实况
  • 魔兽
  • 星际
城市 游戏

name:

需求如下:需求1:点击submit按钮时,检查是否选择type,若没有选择就给出提示:“请选择类型”;

    检查文本框中是否有输入(可以去除前后空格),若没有输入,则给出提示:“请输入内容”;

    若检查都通过,则在相应的ul节点中添加对应的li节点;

    需求2:使包括新增的li都能响应onclick事件,弹出li的文本值。

根据需求的描述,我们可以知道,其实所有的事件触发都在button上,那么就可以将所有的逻辑判断都加入到button上。

代码如下:

新的需求如下:需求:为所有的li节点添加onclick响应函数;

       实现city子节点和game子节点对应位置的元素的互换。

思路是这样的:根据标签名获取到所有的li节点,这样一来,li就在一个数组里面有属于自己的下标了。根据提供的HTML文档,我们可以让(0,1,2,3)和+4的交换,让(4,5,6,7)和-4的交换。

交换结束之后,我们不仅仅是交换节点内容,我们还需要重新赋予onclick事件,还需要将新的下标赋予它。

代码如下:

很简单吧!

下面我们又来一个一份新的HTML文档,文档如下:

你爱好的运动是?    全选/全不选    
足球 篮球 排球 乒乓球

一看这份文档,我们第一反应肯定是与按钮事件响应有关了。

需求:当点击id为checkedAll的按钮时,先检查下面的爱好选择做出选择:如果爱好全部被选择,那么checkedAll按钮要做的事情就是“全不选”;否则就是“全选”功能。

   下面的button按钮根据名字就可以得知了。

   每当爱好全部被打上钩时,checkedAll按钮也要被打上钩;只要不满足前面的条件,checkedAll按钮不能被打上钩。

看上去很绕,其实理清了思路,非常简单。需求正好就是我们的思路方向。

代码如下:

最后一份HTML文档从天而降。文档如下:

添加新员工

name: email: salary:


name Email Salary
Tom tom@tom.com 5000
Mary mary@mary.com 10000

需求:新增按钮:将员工的姓名、邮箱和薪水添加到表格中;

删除按钮:confirm()提示是否将"员工名字"信息删除?确定将整行员工信息删除,否则什么也不做。

新增按钮要做的事情,其实就是文章一开始要叙述的东西,也就是把某物品装进大袋子的事情。

删除按钮,其实只要能获取到它的父节点,也就解决了。

代码如下:

今天就到这里,我们下次再见!

转载于:https://www.cnblogs.com/LeaderHonestQuality/p/5666391.html

你可能感兴趣的文章
根据毫秒数计算出当前的“年/月/日/时/分/秒/星期”并不是件容易的事
查看>>
python的图形模块PIL小记
查看>>
shell变量子串
查看>>
iOS的主要框架介绍 (转载)
查看>>
react报错this.setState is not a function
查看>>
poj 1183
查看>>
从根本解决跨域(nginx部署解决方案)
查看>>
javascript实现的一个信息提示的小功能/
查看>>
Centos7.x:开机启动服务的配置和管理
查看>>
HTML5 浏览器返回按钮/手机返回按钮事件监听
查看>>
xss
查看>>
iOS:百度长语音识别具体的封装:识别、播放、进度刷新
查看>>
JS获取服务器时间并且计算距离当前指定时间差的函数
查看>>
华为硬件工程师笔试题
查看>>
jquery居中窗口-页面加载直接居中
查看>>
cd及目录快速切换
查看>>
Unity Shaders and Effects Cookbook (3-5) 金属软高光
查看>>
31-hadoop-hbase-mapreduce操作hbase
查看>>
C++ 代码风格准则:POD
查看>>
linux-友好显示文件大小
查看>>