jQuery用$符号为何得不到对应的ID组件

这个问题应该说很初级,但是我不得不提一下。

在做一个个人的练习项目,bootstrap好了,jQuery也引入了,检查过了chrome的F12没有任何错误。

那么这就是开始吧,我尝试性的加入一段代码,想实现某一个页面控件input button的onclick事件。

代码是这样的

<script type="text/javascript">
	 $("#conadd").click(function() {
		//alert("get");
	    window.location.href = "www.baidu.com";
	    return true;
	}); 
</script>

好了,问题来了,当我打开画面,却怎么也获取不到效果,不知道什么情况。查遍了jQuery的API,发现都是对的。

那就神奇了,上次公司里刚做完一个快速开发的项目,用的就是jQuery,当时怎么都是好的呢?

于是不死心,继续搜索,这还要感谢一下google和stackoverflow,这两个网站相当好。

现在答案公布一下,问题出在

<script type="text/javascript">
$(document).ready(function() {
	 $("#conadd").click(function() {
		//alert("get");
	    window.location.href = "www.baidu.com";
	    return true;
	}); 
});
</script>

这么一加居然就好了。

好,那么现在就要来挖掘一下,其中的问题和知识点了。

我整理了一下,大体是这样的

There are only five reasons I know of that addressing an ID won't work:

That ID is not really in the page like you think it is.
The element with that ID hasn't been loaded yet.
That ID is in the page more than once.
Your aren't actually requesting the ID you think you are.
Your ID contains invalid characters.

大体意思是说: 有五种理由来定位ID不能用

1)ID在页面上不是如你所想的那样(可能有其他方式存在)

2)这个ID的元素还没有被加载完毕

3)这个ID可能在当前页存在了不止一次

4)你请求的ID并不是你真实希望的那个ID(估计你自己ID拼错了)

5)你的ID含有非法字符

然后第二个知识点就是,document ready的问题了

翻阅了一些网上的文章后发现

document.ready于window.onload类似

大体可以总结如下

1.执行时间 

window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。 

$(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕。 

2.编写个数不同 

window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个 

$(document).ready()可以同时编写多个,并且都可以得到执行 

3.简化写法 

window.onload没有简化写法 

$(document).ready(function(){})可以简写成$(function(){});


好了,今天要总结的知识点就都总结完了。

挖掘的好处就是能让我们通过一个小的问题,掌握更多知识领域。并且记的更牢固。希望下次再能分享更好的。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值