发布网友 发布时间:2022-04-24 02:25
共8个回答
热心网友 时间:2022-04-24 03:54
你的js代码要想运行有效,必须满足两个条件:一、jQuery必须加载完毕;二、页面的DOM结构必须加载完毕。如果把代码放到head,那么这时候jQuery和你的代码几乎是同时加载的,当你的代码运行时,jQuery很可能尚未加载完毕,这样条件一就很可能不满足;其次,这时候HTML的body尚未加载,这样条件二也不满足,所以代码运行无效。如果把代码放到body中所有标签的最后面,当你的代码运行时,jQuery和DOM都肯定已加载完毕,所以是有效的。
其实把你的js代码放到head中也是可以的,但必须放到load事件函数中,即这样:
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(function(){
$("div:contains('a')").css("text-decoration", "underline");
});
</script>
</head>
<body>
<div>abc</div>
<div>asdf</div>
<div>qwer</div>
<div>asdw</div>
</body>
</html>
热心网友 时间:2022-04-24 05:12
写在head中时,dom元素还没有解析完全,就照成不存在div这个了,你那个语句没作用,当你写在下面时dom元素解析完全了,所以有作用。写在head中时通常jquery会用$.ready() 写在这个里面,意思是等页面加载完全后再执行。热心网友 时间:2022-04-24 06:47
错误有以下几个:热心网友 时间:2022-04-24 08:38
这个应该是dom加载的问题,你可以使用jQuery的DOM加载完成的方法来实现热心网友 时间:2022-04-24 10:46
利用开发者工具,打断点js,看看程序是不是进入js了,如果进入了,还不起作用,那个就是你js写错了,仔细检查一下,如果断点都没进入js,那就是你js引入的问题,在仔细检查一下热心网友 时间:2022-04-24 13:11
JS是按顺序来执行的,如果控件放在代码前面,代码执行的时候控件还没有加载就会出现你这种情况。热心网友 时间:2022-04-24 15:52
针对不同的浏览器,可能会存在js兼容的问题,例如:火狐,谷歌和IE
一个页面的不同的js之间可能会存在冲突,如函数名冲突等
望可以帮助到你,谢谢
热心网友 时间:2022-04-24 18:50
没有获取到div a 加一个$(funciton (){})把你写的放在这个里面就行了