把javascript代码放在标签之间

时间:2017-12-30 14:04:40

标签: javascript

我想使用匿名函数将脚本放在<head>标记之间,然后我添加onclick事件来更改标记p的内容但是在我点击之后没有任何反应。我的剧本有什么问题请帮帮我。谢谢

<!DOCTYPE html> <html lang="en">    
<head>      
  <title>web</title>
  <script>
        window.onload=function(){
            function rubah1(){
                document.getElementById("text1").innerHTML="SUDAH BERUBAH TEXT 1";
            }
        }       
  </script>     
</head>     
<body>      
  <p id="text1">Teks 1 Sebelum Di Rubah</p>
  <button type="button" onclick="rubah1();">Rubah Text 1</button>   
</body> 
</html>

2 个答案:

答案 0 :(得分:4)

请在下次更好地格式化您的代码。 您不需要等待加载文档来定义函数。你可以在头部定义,然后按钮就可以了。 工作代码段:

&#13;
&#13;
stringr::str_extract_all("http://example.com/?example_id=123&second_id=25", pattern = "\\d+")
&#13;
&#13;
&#13;

您的方法的问题是您在onload函数的内部范围中定义函数,因此按钮不可见。

答案 1 :(得分:1)

函数rubah1在onload中定义。因此,其范围不是全球性的。功能rubah1的生命只在onload内。超出onload范围的代码无法调用它,因为该代码不知道名为rubah1的函数存在。您可以删除onload,因为它似乎不会为其添加任何值 您可以通过引用它来帮助自己,这将清除您的概念:w3schools Javascript scope tutorial

更新代码:

<!DOCTYPE html> <html lang="en">    
<head>      
  <title>web</title>
  <script>
    window.onload=function(){
        function rubah1(){
            document.getElementById("text1").innerHTML="SUDAH BERUBAH TEXT 1";
        }
    }       
</script>     
</head>     
<body>      
  <p id="text1">Teks 1 Sebelum Di Rubah</p>
  <button type="button" onclick="rubah1();">Rubah Text 1</button>   
</body>