关于javascript:简单的innerHTML更新不起作用

Simple innerHTML update not working

本问题已经有最佳答案,请猛点这里访问。

长话短说,我正在改进现有的登记表,以执行一个简单的"你是人类"检查。简单的东西(人们会想)。我还没有找到好东西,因为我似乎无法在页面上设置几个span元素的innerhtml。

这是简化后的代码…

1
2
3
4
5
6
7
<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>

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

而精简的剧本…

1
2
3
4
5
6
7
8
$('#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/


.innerHTML是dom元素的属性。

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

html()是jquery函数,用来代替innerHTML

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


用途:

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

因为您已经使用.html()加载了jquery,所以最好是这样。

参见:http://api.jquery.com/html/

如果您坚持使用innerHTML,则需要从jquery对象中获取适当的dom对象,如下所示:

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


在jquery对象上不使用innerHTML。您使用html()方法代替。这样地:

HTML

4

JavaScript

1
2
3
4
5
6
7
8
$('#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);

杰西德

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


只使用

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

.html()是最佳选择。