好的,我要问的是Tilte。我有那个代码:
function fromPassToText(inputId) {
var theThing = document.getElementById(inputId).type;
if (theThing == "password")
theThing = "text";
else
theThing = "password";
}
并不是if。当我将所有theThing
重命名为document.getElementById(inputId).type
时,它就可以了。
我是新人,如果你帮助我,我会贬低它。
谢谢!
答案 0 :(得分:2)
当你这样做时
theThing = "text";
或
theThing = "password";
您只是更改本地变量。我假设您需要更改DOM元素的属性,唯一的方法是使用document.getElementById(inputId).type =
顺便说一下,这也可行
function fromPassToText(inputId) {
var theThing = document.getElementById(inputId).type;
if (theThing == "password")
document.getElementById(inputId).type = "text";
else
document.getElementById(inputId).type = "password";
}
答案 1 :(得分:1)
我很确定,你的代码是"进入if语句"。
我想,你在想,为什么这种类型没有改变。它没有,因为你只改变变量。
您想要做的是:
function fromPassToText(inputId) {
var theThing = document.getElementById(inputId);
if (theThing.type == "password")
theThing.type = "text";
else
theThing.type = "password";
}
这样您就可以更改元素,而不仅仅是变量。
答案 2 :(得分:0)
到目前为止,答案只是部分正确。
他们是正确的,这是行不通的:
var theThing = document.getElementById(inputId).type;
theThing = "text";
这是因为你得到一个原始类型值(一个字符串),Javascript按值传递它们。
但是,将工作:
var theInput = document.getElementById(inputId);
theInput.type = "text";
这是因为您将theInput
设置为对象,并且对象通过引用传递。因此,对于所有意图和目的,theInput
是元素本身。