Javascript函数不工作+;变量
我是javascript新手,我正在尝试在html中构建一个脚本,创建一个变量x,然后将其写入表中的一个单元格。这是我想到的,但它不起作用Javascript函数不工作+;变量,javascript,var,Javascript,Var,我是javascript新手,我正在尝试在html中构建一个脚本,创建一个变量x,然后将其写入表中的一个单元格。这是我想到的,但它不起作用 <table border="1"> <tr> <td>Text</td> <td id="xx"></td> <td><button type="button" onclick="x()">Check<
<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>
就在上面
然后我补充说
<p>
<script>
document.write(x + "<br>");
document.write(y);
</script>
</p>
部分错误,因为我无法正确验证。您正在将内容写入函数外部的表格单元格,使其在页面加载时立即运行。当时变量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小提琴。这样,对帮助感兴趣的人可以更容易地看到你在做什么。我已经为这个问题创建了一个提琴来演示:
试试这个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>
函数setX()
{
var x='10';
document.getElementById(“xx”).innerHTML=x;
}
正文
检查
变量x
的作用域在函数x
中,因此当您设置innerHTML
时,x
的作用域是函数x
因此,首先更改函数名并在函数内设置值
这是示例bin链接首先,不要让函数名与变量名相同,因为函数名实际上是变量。所以不要使用函数x(),然后使用var x=好的建议,尽管这不是本例中问题的原因,因为变量x是在函数x的范围内定义的。。。但在这种情况下,这似乎是运气多于智慧。我在这里键入时只输入了x-它们有其他名称…实际上,变量在函数中声明,因此它们不在同一范围内…那么我如何将您指定的“固定值”更改为idec值?与我所做的相反,粘贴idec.device\u read()调用我建议的“test”值。所以我使用您的第三组代码,并用我的代码替换test?带或不带“”?
function writeDeviceValueToCell() {
var deviceValue = 'test';
document.getElementById("xx").innerHTML = deviceValue;
}
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>