<input type = "text" id = "demo1" onchange = "changeWord()">
这个输入框,鼠标离开变为大写字母,非常简单,可以实现,但是我改了一些地方就不行了
原来
function changeWord(){
var x = document.getElementById("demo1");
x.value = x.value.toUpperCase();
}
鼠标离开输入款 字母变为大写 ,没有问题
改变之后
function changeWord(){
var x = document.getElementById("demo1").value;//加了.value
x = x.toUperCase();//缺少了.value
}这样就不行了,我感觉这跟java中的一样赋值啊,不知道这个.value 跟不加这个.value有什么区别?
为什么要复杂的写成这样子?x.value = x.value.toUpperCase()?在前面加上.value后面不就能写成
x = x.toUperCase();
但是这样不行,没效果了
新手JS求助
当然
var x = document.getElementById("demo1");
x.value = x.value.toUperCase();
的意思是,x是一个控件,将它的值转换为大写,再设置给这个控件的value属性
而
var x = document.getElementById("demo1").value;//加了.value
x = x.toUperCase();//缺少了.value
的意思是,x是一个字符串,它等于原先文本控件的值,然后让这个字符串转换为大写,再更新字符串,但是这不会影响原来的控件,除非再加上
document.getElementById("demo1").value = x;
var x = document.getElementById("demo1").value;//加了.value
这句话可以理解为你把这个value的值取了出来
x = x.toUperCase();//缺少了.value
这个理解为你仅仅是把x的值改变了
这个仅仅是值传递,并没有涉及到对象的属性值改变
楼主,我试了这个操作是可以的,你不行的原因是修改之后,你的toUpperCase()方法写错了,你少写了一个p,仔细看一下。
是toUpperCase()
不是toUpercase()
注意拼写