JavaScript_在什么位置编写 JS 代码

1.相关介绍

DOM:Document Object Model(文本对象模型)
D:文档 – html 文档 或 xml 文档
O:对象 – document 对象的属性和方法
M:模型
DOM 是针对xml(html)的基于树的API。
DOM树:节点(node)的层次。
DOM 把一个文档表示为一棵家谱树(父,子,兄弟)
DOM定义了Node的接口以及许多种节点类型来表示XML节点的多个方面
节点(node):来源于网络理论,代表网络中的一个连接点。网络是由节点构成的集合

查找元素节点

getElementById()

寻找一个有着给定 id 属性值的元素,返回值是一个有着给定 id 属性值的元素节点。如果不存在这样的元素,它返回 null。
var element = document.getElementById(ID);
该方法只能用于 document 对象

getElementsByTagName()

寻找有着给定标签名的所有元素,这个方法将返回一个节点集合,这个集合可以当作一个数组来处理。这个集合的 length 属性等于当前文档里有着给定标签名的所有元素的总个数。
var elements = element.getElementsByTagName(tagName);
该方法不必非得用在整个文档上。它也可以用来在某个特定元素的子节点当中寻找有着给定标签名的元素。
var container = document.getElementById(“content”);
var paras = container.getElementsByTagName(“p”);
alert(paras.length);

查找是否存在子节点

hasChildNodes()

该方法用来检查一个元素是否有子节点,返回值是 true 或 false.
var booleanValue = element.hasChildNodes();
文本节点和属性节点不可能再包含任何子节点,所以对这两类节点使用 hasChildNodes 方法的返回值永远是 false.
如果 hasChildNodes 方法的返回值是 false,则 childNodes,firstChild,lastChild 将是空数组和空字符串。

2.在什么位置编写JS代码

1)直接在html页面中书写代码

<body>
    <!-- HTML 代码和JS代码耦合在一起 -->>
    <button onclick = "alert('helloworld');">ClickMe</button>
</body>

缺点:
a. JS和HTML强耦合,不利于代码的维护
b.若click相应函数是比较复杂的,则需要先定义一个函数,然后再在onclick属性中晚餐对函数的引用,比较麻烦

2)一般的不能再body节点之前来直接获取body内的节点,因为此时HTML文档树还没加载完成,获取不到指点的节点

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type ="text/javascript">
    //1.获取button
    var btns = document.getElementsByTagName("button");
    alert(btns.length);
</script>
</head>
<body>
    <button>ClickMe</button>

</body>
</html>

3)可以在整个html文档的最后编写js代码 但这不符合习惯

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <button>ClickMe</button>
</body>
</html>
<!-- 在整个HTML文档被加载后,获取其中的节点,
把script 节点放在HTML文档的最后
但不符合写JS代码的习惯 -->
<script type ="text/javascript">
    //1.获取button
    var btns = document.getElementsByTagName("button");
    //2.为button添加onclick响应函数
    btns[0].onclick = function(){
        alert("hellowordl");
    }
</script>

4)一般的 在body节点前编写js代码,但需要利用window。onload事件,该时间在当前文档完全加载之后诶触发

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type ="text/javascript">
    //window.onload事件在整个html文档被完全加载后触发执行
    //所以在其中可以获取到HTML文档的任何元素
    window.onload = function(){
            alert("helloworld");
        }
    }
</script>
</head>
<body>
    <button>ClickMe</button>
</body>
</html>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值