Rumah  >  Artikel  >  hujung hadapan web  >  html中<script>应该摆放在那个位置?

html中<script>应该摆放在那个位置?

黄舟
黄舟asal
2017-07-17 14:04:433200semak imbas

以前一直觉得script在html中的任何位置都可以,今天做一个需求的时候才更正了自己的错误思想啊--script的位置也不是随便放的。

首先是想实现一个select标签,有是和无两个option,但是在初始化的时候要求select标签默认选择空值,所以我在点击的时候加了一个方法让他把空值删掉:

<!DOCTYPE html>
<html>
<head>
<script src="jquery/jquery-1.11.1.min.js"></script>
</head>
<script>
$(&#39;#checkcash&#39;).click(function () {
        if ($(&#39;#checkcash&#39;).val() == &#39;0&#39;) {
            $("#checkcash option[value=&#39;0&#39;]").remove();
        }
    });
    $("#alert").click(function(){
    alert("1123");
    })
</script>
<body>
 是否已提现 <select id="checkcash"   style="width: 181px">
                            <option selected="selected" value="0"></option>
                            <option value="1">是</option>
                            <option value="2">否</option>
                            </select>
                             
                            <input type=&#39;button&#39; id=&#39;alert&#39; value="anwo">
</body>


</html>

但是这样并不能达到想要的效果,起初以为是jquery语法错误还一直在网上查,改,但是都不管用,后来突然想到是不是应该把script放到后面,试了一下,结果果真ok了,这才恍然大悟,原来不是这样的。

后来查了一下原因是因为,html文件是自上而下的执行方式,但引入的css和javascript的顺序有所不同,css引入执行加载时,程序仍然往下执行,而执行到3f1c4e4b6b16bbbd69b2ee476dc4f83a脚本是则中断线程,待该script脚本执行结束之后程序才继续往下执行。所以,一般将script放在body之后是因为避免长时间执行script脚本而延迟阻塞。而有一些页面的效果的实现,是需要预先动态的加载一些js脚本,所以这些脚本应该放在6c04bd5ca3fcae76e30b72ad730ca86d之前。其次,不能将需要访问dom元素的js放在body之前,因为此时还没有开始生成dom,所以在body之前的访问dom元素的js会出错,或者无效。就是因为这个,在dom没生成好时我就给它添加了方法,才导致这样。

真的应该多学习很多地方以为所以然了,却没深究。以后还要加油!

 ps:其实还有另外一种方法,那就是用jquery的初始化页面方法,把上面给标签添加的点击事件加入到$(function(){})中也是可以的,原理和上面是一样的,这个方法是等页面加载好了才执行,所以不管放在哪都可以了!

Atas ialah kandungan terperinci html中<script>应该摆放在那个位置?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn