为什么,我把变量定义到匿名函数的外边会报错呢?
相当于
function onload(){
var a=0;
dosome();
}
function dosome(){
alert(a)
//a is not defined
}
onload();
你用$()
包裹的就是jquery
对象了,jquery
对象没有getElementsByTagName
方法
如果在jquery
对象上使用原生js
:
$('#notes-tit').get(0).getElementsByTagName('tagName');
当然直接用jquery
更好咯:
$('#notes-tit li');
onload指向一个匿名函数,你在匿名函数定义了titles变量,这个变量的作用域就这个函数内部,在函数外是没有办法访问这个变量的。
js中,只有两种作用域 全局的和函数内部,或者说局部。
通过作用域链,局部的函数可以访问外层函数中定义的变量(或者说活动对象),外层的又可以访问再外层的,直到全局。
27 回答13.1k 阅读
8 回答3.5k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
5 回答5.3k 阅读✓ 已解决
4 回答1.6k 阅读✓ 已解决
3 回答1.7k 阅读
4 回答2.3k 阅读✓ 已解决
window.onload
的值是一个函数,而titles
是这个函数中的变量,并不是全局变量。所以curTab()
中不能访问,如果想在curTab()
中访问,可以将function curTab(){}
放到window.onload
里,即