如何从函数中更改全局变量的值?

时间:2015-05-29 21:50:27

标签: javascript variables global

当我点击应该更改值的按钮时,这里有什么问题?



<html>
<head>
<script type="text/javascript">
var x = 45;
var j = " I love pancakes";
</script>
</head>
<body>
    <button type="button" onclick="f1();">Click me to change number</button>
    <button type="button" onclick="f2();">Click me to change sentence</button>
    <center>
        <script type="text/javascript">
        function f1()
        {
            if (x == 45)
            {
                x = 32;
            }
        }
        function f2()
        {
            if (j == " I like pancakes")
            {
                j = " I don't like pancakes";
            }
        }

        document.write(x);
        document.write(j);
        </script>
    </center>
</body>
</html>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:3)

您可以按照自己的方式更改这些变量的值。但是,document.write不会自动重新运行。即使变量已更新,您在页面上看到的文本也不会改变。

尝试使用DOM在事件处理程序运行时修改页面内容。

<html>
<head>
<script type="text/javascript">
var x = 45;
var j = " I love pancakes";
</script>
</head>
<body>
    <button type="button" onclick="f1();">Click me to change number</button>
    <button type="button" onclick="f2();">Click me to change sentence</button>
    <center>
        <script type="text/javascript">
        function update()
        {
            document.getElementById('output').innerHTML = x + j;
        }
        function f1()
        {
            if (x == 45)
            {
                x = 32;
            }
            update();
        }
        function f2()
        {
            if (j == " I like pancakes")
            {
                j = " I don't like pancakes";
            }
            update();
        }

        document.write('<span id="output">');
        document.write(x);
        document.write(j);
        document.write('</span>');
        </script>
    </center>
</body>
</html>

答案 1 :(得分:0)

试试这个:

&#13;
&#13;
{{1}}
&#13;
&#13;
&#13;

它使用innerHTML属性来更改内容

还有另一个问题: 写函数在函数之外,因此它从不被称为