简单的innerHTML更新无法正常工作

时间:2013-10-28 14:50:43

标签: javascript jquery html forms innerhtml

长话短说,我正在增强现有的注册表格来执行简单的“你是人”检查。容易的东西(人们会想)。我还没有得到好的东西,因为我似乎无法在页面上设置几个span元素的innerHTML。

这是精简代码......

<form method="post" action="register2.php">Please verify that you are human below...
    <br/> <span id="num1"></span> X
    <input id="num2" style="width:20px" /> equals <span id="answer"></span>

    <br>
    <input id="submit" type="submit" value="Register" disabled="disabled" />
</form>

并删除了脚本......

$('#submit').attr("disabled", "disabled");

var num1 = Math.floor((Math.random() * 11));
var num2 = Math.floor((Math.random() * 11));
var answer = num1 * num2;

$('#num1').innerHTML = "" + num1;
$('#answer').innterHTML = "" + answer;

此时......我只想看到最后两行设置正确的表单元素,以便我可以继续处理验证功能。我必须在这里写错字或逻辑错误...想法?

这是小提琴:http://jsfiddle.net/2e9Xc/

4 个答案:

答案 0 :(得分:3)

.innerHTML是DOM元素的属性。

document.getElementById('num1').innerHTML = "" + num1;

html()是要使用的jQuery函数,而不是innerHTML

$('#num1').html(num1);

答案 1 :(得分:2)

使用:

$('#num1').html(num1);
$('#answer').html(answer);

由于您已经使用.html()加载了jQuery,因此最好。

请参阅:http://api.jquery.com/html/

如果你坚持使用innerHTML,你需要从jQuery对象中获取一个正确的DOM对象,如下所示:

$('#num1')[0].innerHTML = "" + num1;
$('#answer')[0].innterHTML = "" + answer;

答案 2 :(得分:1)

您不在JQuery对象上使用InnerHTML。您改用html()方法。像这样:

<强> HTML

<form method="post" action="register2.php">Please verify that you are human below...
    <br/> <span id="num1"></span> X
    <input id="num2" style="width:20px" /> equals <span id="answer"></span>

    <br>
    <input id="submit" type="submit" value="Register" disabled="disabled" />
</form>

<强>的JavaScript

$('#submit').attr("disabled", "disabled");

var num1 = Math.floor((Math.random() * 11));
var num2 = Math.floor((Math.random() * 11));
var answer = num1 * num2;

$('#num1').html(num1);
$('#answer').html(answer);

<强>的jsfiddle

http://jsfiddle.net/2e9Xc/1/

答案 3 :(得分:0)

只需使用

$('#num1').html("" + num1);

.html()是最佳选择。