首先吧,你得知道什么是全局变量:
javascript的变量作用域是根据方法块儿来限定的,方法块儿内声明的变量叫局部变量,方法块儿外声明的变量叫全局变量。
有三种方式声明全局变量:
方法1,在方法块儿外拿var声明:
<script>var a=1
function(){
//我是代码
}
</script>
方法2,不实用var,进行隐式声明:
<script>b=1
function(){
c=2
//b和c都是全局变量。
}
</script>
方法3,用window.变量方式声明:
<script>function(){
window.d=1
}
console.log(d)
//d为全局变量。
</script>
在js中定义成全局变量的方式有以下几种:第一种,不对该变量进行var声明,则默认是全局变量,不过不推荐,容易出错。第二种,通过window.变量名方式进行申明,这种方式没有位置限制。如function fa(){ a='2'//这里a就是全局变量 window.k=2//这里k也是全局变量}因为变量的声明和赋值都是发生在input输入数据之前的,而当input输入数据后变量并没有被重新赋值,所以就还是空的。这种情况就不要用全局变量了,而应该在函数里实时获取input的输入值(也就是把var这行放到select2函数里面去)。
如果一定要用全局变量,那么就应该把input对象(而不是把它的value属性值)赋值给全局变量:
var $str1=d1
然后在函数里使用的时候要这样:
console.log($str1.value.length)