Javascript函数不工作+ var

时间:2014-01-09 14:16:43

标签: javascript var

我是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);

部分错误,因为我无法正确验证。

2 个答案:

答案 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/