单击按钮时,JavaScript函数将函数名显示为未定义

单击按钮时,JavaScript函数将函数名显示为未定义,javascript,jquery,html,Javascript,Jquery,Html,我正在测试如何使用Javascript更改文本和CSS元素 我的HTML中有三个按钮,到目前为止我只使用了一个(更改标题)。我想在单击按钮时更改H1文本 使用我当前的编码,当我单击按钮时,什么也没有发生,我在web developer tools控制台中显示以下内容: *ReferenceError:changeTitle未定义[Learn More]索引。html:1:1 Onclickfile:///D:/Google%20Drive/Programming/EDX/Introduction

我正在测试如何使用Javascript更改文本和CSS元素

我的HTML中有三个按钮,到目前为止我只使用了一个(更改标题)。我想在单击按钮时更改H1文本

使用我当前的编码,当我单击按钮时,什么也没有发生,我在web developer tools控制台中显示以下内容:

*ReferenceError:changeTitle未定义[Learn More]索引。html:1:1

Onclickfile:///D:/Google%20Drive/Programming/EDX/Introduction%20to%20JavaScript/Module_1/index.html:1:1*

问题:

  • 有人能帮我理解为什么浏览器说changeTitle函数没有定义,而我相信我已经在外部JS文件中定义了它
  • 我能使用onclick方法吗??在标签元素中,这样我就不必使用按钮了
  • 请查找下面的代码片段:

    $(文档).ready(函数(){
    函数changetTitle(){
    var title=document.querySelector(“标题”);
    title.innerHTML+=“
    (或如何像海盗一样说话)”; }; });
    *{
    保证金:0;
    填充:0;
    }
    身体{
    字体系列:“arial”,无衬线;
    最大宽度:1000px;
    保证金:0自动;
    填充顶部:50px;
    }
    标题>h1{
    背景色:#FEF1E0;
    颜色:#A47F1A;
    文本对齐:居中;
    线高:100px;
    边框:虚线5px#A47F1A;
    边界半径:40px;
    文本阴影:2px 2px#3B2E2A
    }
    .导航{
    列表样式类型:无;
    背景色:#3B2E2A;
    保证金:20px自动;
    文本对齐:居中;
    /*填充:20px 0 20px 0*/
    }
    李国荣先生{
    显示:内联块;
    /*填充:0 25px*/
    }
    李娜先生{
    颜色:#FEF1E0;
    文字装饰:无;
    显示:块;
    填充:20px 25px;
    }
    李娜:悬停{
    背景色:#FEF1E0;
    颜色:#3B2E2A;
    文字装饰:无;
    }
    .content>p{
    填充:20px 50px 0px 50px;
    文本对齐:对齐;
    }
    
    测试JS使用情况
    海盗口语日记
    改名
    变色
    更改标题颜色
    

    阿荷伊联盟弯刀风帆抓斗吊篮缆绳链射向勇敢的车辙沉闷的龙骨射程穿过船头蓬松的执行船坞钱德勒压载物垂荡来称锚。船首斜桅黄色杰克长尾帆翘曲勇敢的海盗罢工颜色鞭笞来袭前卫福禄克海腿鹦鹉学舌黑点铁杉吊带穿过船头美国主要的乌鸦窝红色军旗缆绳。Gally jolly船长衣四分之一甲板福禄克联盟舱底水舞hempen jig闯入者三角帆七海天灾拭子拖运风链射击牵引绳末端保护礁黄杰克海盗。尼尔森愚蠢的顶帆猫o'nine尾巴冰雹射击七海之鞭装载到炮墙旋转木马船帆ho fluke船首斜桅拉滕帆石笼船厂教务长手上的兵变齿轮保护将该人击倒。吃水角、船头、船尾、船尾、船首、被困的单桅帆船小伙子、坏血病、硬钉、日本海盗、抓斗海盗、用填隙绞盘、船尾、船坞、排水孔、舵手。

    巨大的雷声鞭笞抢劫杰克焦油乳油海盗劫掠龙骨四分之一红色军旗手牵手联盟战栗我木料巧妙地擦洗英寻拖曳风冰雹射击。舱底鼠陆上机器人或仅仅是机器人破解Jennys茶杯朗姆酒wherry海盗扬起去刺舱底水avast红色军旗海盗大头钉兵变追逐枪笼罩着咯咯作响的水果战利品主床单四分之一。Barque六磅船舷窗护罩在她的锚上膨胀柔软的索具黑色石笼尖刺的海军上将Arr belay单桅帆船缆绳的末端lee黑点称锚yo ho ho holystone。Holystone大修行走木板纵帆船进行帐户擦洗场谈判繁荣掠夺拉廷帆ho吃水大头钉死灯枪墙鹦鹉学舌栗色舞步hempen吉格舞。跳hempen吉格舞链子射击猫咪o'nine tails skysail行为准则案例射击stern侯爵的信跑过船头射击快活的船战利品杰克六磅重粉色Barkader Nelsons愚蠢的叛变沉没我确保升空。

    有人能帮我理解为什么浏览器上说 当我认为我已经定义了changeTitle函数时,它还没有定义 在外部JS文件中

    要从内联onclick调用方法,需要全局定义该方法。并且您的
    changetTitle
    方法是
    文档的本地方法。ready
    事件处理程序

    如果要在document.ready中定义
    changetTitle
    函数,可以使用jquery的
    单击

    $(document).ready(function() {
    
      function changeTitle() {
        var title = document.querySelector(".head-title");
        title.innerHTML += "<br>(or how to speak like a pirate)";
      };
    
      $( "button" ).click( changeTitle );
    
    });
    
    
    测试JS使用情况
    海盗口语日记
    改名
    变色
    更改标题颜色
    

    阿荷伊联盟弯刀风帆抓斗吊篮缆绳链射向勇敢的车辙沉闷的龙骨射程穿过船头蓬松的执行船坞钱德勒压载物垂荡来称锚。船首斜桅黄色杰克长尾帆翘曲勇敢的海盗罢工颜色鞭笞来袭前卫福禄克海腿鹦鹉学舌黑点铁杉吊带穿过船头美国主要的乌鸦窝红色军旗缆绳。Gally jolly船长衣四分之一甲板福禄克联盟舱底水舞hempen jig闯入者三角帆七海天灾拭子拖运风链射击牵引绳末端保护礁黄杰克海盗。尼尔森愚蠢的顶帆猫o'nine尾巴冰雹射击七海之鞭装载到炮墙旋转木马船帆ho fluke船首斜桅拉滕帆石笼船厂教务长手上的兵变齿轮保护将该人击倒。

    $(document).ready(function() { /* handling code for the event document.ready */ })
    
    $(document).ready(function() {
      window.changeTitle = function changeTitle() {
        var title = document.querySelector(".head-title");
        title.innerHTML += "<br>(or how to speak like a pirate)";
      };
    });
    
    function changeTitle() {
      var title = document.querySelector(".head-title");
      title.innerHTML += "<br>(or how to speak like a pirate)";
    };
    
    $(document).ready(function() {
      document.querySelectorAll('nav button').forEach(function(button) {
        button.addEventListener('click', changeTitle);
      })
    });
    
    $(document).ready(function() {
      $('nav button').on('click', changeTitle);
    });
    
    var title = document.querySelector(".head-title");
    title.innerHTML += "<br>(or how to speak like a pirate)";
    
    document.querySelector(".head-title").innerHTML += "<br>(or how to speak like a pirate)";