javascript核心技术(二十七)原生JS的标签节点操作(七) 判断是否有子节点或某属性

[复制链接]
查看: 1729|回复: 31
发表于 2023-1-25 13:01:37 | 显示全部楼层 | 阅读模式
通过上面的讲解已经学会了如何动态给页面添加一个标签,并且也知道了如何给标签添加或修改属性。可是,我们在工作中,往往在添加之前会先确认一下节点中是否存在子节点,或元素是否存在某属性。
一、判断节点中是否存在子节点
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="box">
        <span id="span1">这是span1</span>
        <span id="span2">这是span2</span>
        <span id="span3">这是span3</span>
    </div>
    <div id="box1"></div>
    <div id="box2">

    </div>
</body>
<script>
    var box=document.getElementById('box');
    var bool=box.hasChildNodes();
    console.log(bool);
    var box1=document.getElementById('box1');
    var bool=box1.hasChildNodes();
    console.log(bool);
    var box2=document.getElementById('box2');
    var bool=box2.hasChildNodes();
    console.log(bool);
</script>
</html>


上上面的代码中,我们分别判断了3次,第一次判断id为box的div标签是否有子节点,显示是有的,程序也返回了true,这没什么好说的
第二次,我们判断一个id为box1的空div标签,它返回flase,这也无可争议。
第三次,我们判断一个id为box2的空div标签,发现优先奇怪,它竟然返回了true。需要说明的是,在节点对象中,节点中的的空行或换行符也算是节点。
执行结果如下:
javascript核心技术(二十七)原生JS的标签节点操作(七) 判断是否有子节点或某属性

二、判断元素中是否存在某属性
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="box">
        <span id="span1">这是span1</span>
        <span id="span2">这是span2</span>
        <span id="span3">这是span3</span>
    </div>
    <div id="box1"></div>
    <div id="box2">

    </div>
</body>
<script>
    var box=document.getElementById('box');
    var bool=box.hasAttribute('id');
    console.log(bool);
    var bool=box.hasAttribute('name');
    console.log(bool);
</script>
</html>

在上面的代码中,我们先判断id为box的div标签是否有id属性,自然是有的,它也返回了true
然后又判断了该标签是否有name属性,它返回了false,该标签确实不存在name属性。

通过以上的实验,我们已经学会了如何判断节点下是否有子节点以及标签中是否有某属性,大家可以动手测试一下其它标签和其它属性以加深印象。

易博软件介绍

0

主题

12

帖子

7

积分

营销入门

Rank: 2

积分
7
发表于 2023-2-18 06:22:15 | 显示全部楼层
你用的是VB,他上面的大概是C吧  

0

主题

15

帖子

8

积分

营销入门

Rank: 2

积分
8
发表于 2023-3-2 07:02:22 | 显示全部楼层
我是个新手,看了此文章让我感触良深,更给了我学习的动力.我是学医的,现大二,不过我更喜欢的是电脑,同学那我找不到有共同爱好的,在这里好多知音啊!  我是一个刚进不入高校的大门,看后受到很大的启发!~  每天看8页编程书,看几遍论坛的文章,再加上几道练习,相信同学4年后毕业的技术应该跟我差不多!~

0

主题

21

帖子

11

积分

营销入门

Rank: 2

积分
11
发表于 2023-3-12 19:31:41 | 显示全部楼层
听君一席话,胜读十年书!!!

0

主题

15

帖子

8

积分

终身会员

Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25

积分
8
发表于 2023-3-22 22:10:03 | 显示全部楼层
真的不错,看了很受启发。  学习!  太多的学习

4

主题

166

帖子

90

积分

营销菜鸟

Rank: 3Rank: 3

积分
90
发表于 2023-3-27 23:00:58 | 显示全部楼层
在这之前.我还很盲目.不知道到底要学什么

0

主题

18

帖子

10

积分

营销入门

Rank: 2

积分
10
发表于 2023-4-2 20:16:15 | 显示全部楼层
汗,看了之后我流汗了.  CPU是为用户服务的,不是为程序员服务的经典!
发表于 2023-4-8 10:36:10 | 显示全部楼层
给我好好地上了一课

0

主题

15

帖子

8

积分

营销入门

Rank: 2

积分
8
发表于 2023-4-13 03:26:27 | 显示全部楼层
我是个初学者现状学的一塌糊涂的.自己感觉没有找到门路和学习方法.还请你指教指教.  看了你的文章打心里佩服你

0

主题

12

帖子

7

积分

营销入门

Rank: 2

积分
7
发表于 2023-4-18 00:32:54 | 显示全部楼层
此般教育,阿SIR说了不少,可真正受用,还是只有这文章
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、请认真发帖,禁止回复纯表情,纯数字等无意义的内容!帖子内容不要太简单!
2、提倡文明上网,净化网络环境!抵制低俗不良违法有害信息。
3、如果你对主帖作者的帖子不屑一顾的话,请勿回帖。谢谢合作!
3、问答求助区发帖求助后,如有其他用户热心帮您解决问题后,请自觉点击设为最佳答案按钮。

 
 
QQ在线客服
QQ技术支持
工作时间:
8:00-18:00
软著登字:
1361266号
官方微信扫一扫
weixin

QQ|小黑屋|Archiver|慈众营销 ( 粤ICP备15049986号 )|网站地图

自动发帖软件 | 自动发帖器 | 营销推广软件 | 网络营销工具 | 网络营销软件 | 网站推广工具 | 网络推广软件 | 网络推广工具 | 网页推广软件 | 信息发布软件 | 网站推广工具 | 网页推广软件

Powered by Discuz! X3.4   © 2012-2020 Comsenz Inc.  慈众科技 - Collect from 深圳吉宝泰佛文化有限公司 公司地址:罗湖区黄贝街道深南东路集浩大厦A1403

返回顶部 返回列表