我是javascript的新手,我正在尝试在html中构建一个创建变量x的脚本,然后将其写入表中的单元格。这就是我想出的,但它不起作用。
<table border="1">
<tr>
<td>Text</td>
<td id="xx"></td>
<td><button type="button" onclick="x()">Check</button></td>
</tr>
</table>
<script>
function x() {
var x = idec.device_read("D", 0901, 0, 0);
}
document.getElementById("xx").innerHTML = x;
</script>
这个想法是,当您单击按钮时,可以在单元格中查看var x的结果。但由于它不起作用,我在剧本中添加了以下内容
var y = 5;
就在顶部
然后我添加了
<p>
<script>
document.write(x + "<br>");
document.write(y);
</script>
</p>
理论上应该至少在表格之后添加五个......或者不是?因为没有五个出现......
部分问题可能是我有
var x = idec.device_read("D", 0901, 0, 0);
部分错误,因为我无法正确验证。
答案 0 :(得分:1)
您正在将内容写入函数外部的表格单元格,使其在页面加载后立即运行。那时变量x尚未声明,因此它不会做任何事情。然后当点击按钮时,所有发生的事情都是变量x被填充,但没有做任何事情。
function x() {
var x = idec.device_read("D", 0901, 0, 0);
document.getElementById("xx").innerHTML = x;
}
我不知道idec.device_read()应该做什么,所以我无法评论这是否是问题的一部分。不过,我建议用固定值替换该函数调用来解决较小部分的问题。如果您可以将表格单元的写入工作,则可以添加该代码以解决从设备读取值的问题。分而治之:
function x() {
var x = 'test';
document.getElementById("xx").innerHTML = x;
}
正如AlienArrays的评论所指出的那样:在变量中命名你的函数同样在Javascript中是一件危险的事情:
function writeDeviceValueToCell() {
var deviceValue = 'test';
document.getElementById("xx").innerHTML = deviceValue;
}
在发布与客户端开发相关的问题时,请考虑将您的代码添加到JS Fiddle。这样,有兴趣帮助的人可以更容易地看到你想要做的事情。我已经为这个问题创建了一个小提琴来演示:http://jsfiddle.net/5gESD/
答案 1 :(得分:0)
试试这个
function setX()
{
var x='10';
document.getElementById("xx").innerHTML=x;
}
<table border="1">
<tr>
<td>Text</td>
<td id="xx"></td>
<td><button type="button" onclick="setX()">Check</button></td>
</tr>
</table>
变量x
的范围限定在function x
内,因此当您设置innerHTML
时,x
的范围为function x
所以首先更改函数名称并设置函数内的值。
这是示例bin链接http://jsbin.com/ANUBeXox/1/