https://jsfiddle.net/3vz45os8/7/
我有这个jsfiddle,我想改变输入文本的背景颜色,如果单词是好的类型,而另一个,如果单词不是很好的类型。它目前无法正常工作,但我在控制台中没有出错。如果你们可以帮助我。
这是js函数,我记录每一步并没有收到错误:
function isCorrect() {
var test = document.getElementById('test').value;
if (test.value === "hello") {
test.classname = "correct"
return true;
} else {
test.classname = "incorrect"
return false;
}
}
答案 0 :(得分:3)
var test = document.getElementById('test').value;
if (test.value === "hello") {
您已拨打.value
两次。把它从第一行拿下来,因为否则你将className
(顺便说一句,应该是驼峰)添加到字符串值而不是输入元素。
以下是更正后的代码和working copy:
function isCorrect() {
var test = document.getElementById('test');
if (test.value === "hello") {
test.className = "correct";
return true;
} else {
test.className = "incorrect";
return false;
}
}
它正确地添加了这个类,但是你的CSS被覆盖了所以我只是删除了默认颜色以便插图。
答案 1 :(得分:2)
你正在加倍重视价值观:
var test = document.getElementById('test').value;
^^^^^^
if (test.value === "hello") {
^^^^^^
test
ALREADY是该输入的值,这意味着它是一个纯字符串。字符串没有.value
属性,因此您正在执行undefined === "hello"
。
Also use className not classname
^ ^
答案 2 :(得分:1)
您有一些错误:
className
而不是classname
。请改变它。.value
。无需再次打电话。更正后的代码:
function isCorrect() {
var test = document.getElementById('test').value;
if (test === "hello") {
test.className = "correct"
//------------^
return true;
} else {
test.className = "incorrect"
//------------^
return false;
}
}