JavaScript onClick参数表示未定义变量

JavaScript onClick参数表示未定义变量,javascript,onclick,Javascript,Onclick,我的对象是在我的JS中定义的,为什么会返回错误?我还通过其他onclick传递了对象名 HTML 也许把第二个参数用引号括起来 function insertBefore(selector, html){ console.log("selector: "+selector); $(html).insertBefore("#"+selector); }; +添加位置 编辑: 正如JmJ所指出的,密钥也是错误的。应为“uaradlocation”: +添加位置 是否可以将第二个参数用引号

我的对象是在我的JS中定义的,为什么会返回错误?我还通过其他onclick传递了对象名

HTML


也许把第二个参数用引号括起来

function insertBefore(selector, html){
  console.log("selector: "+selector);
  $(html).insertBefore("#"+selector);
};
+添加位置
编辑:

正如JmJ所指出的,密钥也是错误的。应为“uaradlocation”:

+添加位置

是否可以将第二个参数用引号括起来

function insertBefore(selector, html){
  console.log("selector: "+selector);
  $(html).insertBefore("#"+selector);
};
+添加位置
编辑:

正如JmJ所指出的,密钥也是错误的。应为“uaradlocation”:

+添加位置

发生这种情况是因为您必须在创建对象之前引用该对象。即使在HTML文件的顶部加载JavaScript,如果首先执行HTML,也会发生这种情况。我的建议是在创建对象后命名JavaScript块或文件中的HTML元素,或者也在那里创建HTML块。

这是因为您必须在创建对象之前引用它。即使在HTML文件的顶部加载JavaScript,如果首先执行HTML,也会发生这种情况。我的建议是在创建对象后命名JavaScript块或文件中的HTML元素,或者也在那里创建HTML块。

除了其他人提到的错误之外


  • “您正在将
    PAGEHTML.uarLocation
    传递给您的函数,但您的对象被称为
    PAGEHTML.uarAddLocation

  • “也许将第二个参数用引号括起来?”

  • 注意这一点

  • insertBefore
    是一个内置的javascript方法,因此不能将该名称用于函数
  • var PAGEHTML={
    uarAddLocation:`异常活动量
    异常活动开始日期
    异常活动结束日期
    异常活动地点
    `
    };
    函数insertBefor(选择器,html){
    警报(选择器);
    $(html).insertBefore(“#”+选择器);
    };
    
    
    
    +除了其他人提到的错误之外,还要添加位置


  • “您正在将
    PAGEHTML.uarLocation
    传递给您的函数,但您的对象被称为
    PAGEHTML.uarAddLocation

  • “也许将第二个参数用引号括起来?”

  • 注意这一点

  • insertBefore
    是一个内置的javascript方法,因此不能将该名称用于函数
  • var PAGEHTML={
    uarAddLocation:`异常活动量
    异常活动开始日期
    异常活动结束日期
    异常活动地点
    `
    };
    函数insertBefor(选择器,html){
    警报(选择器);
    $(html).insertBefore(“#”+选择器);
    };
    
    
    +在onclick中添加位置

    <button id="addLocation" onclick="insertBefore(PAGEHTML.uarAddLocation, 'addLocation')">+ Add Location</button>
    
    • 您正在将HTML(
      PAGEHTML.uaradlocation
      )作为
      选择器传递
    • addLocation
      必须用引号括起来
    • PAGEHTML.uarLocation
      不存在,但
      PAGEHTML.uarAddLocation
      存在
    • 您的函数必须具有不同的名称,这会导致本机出现问题
    所以它应该是这样的:

    onclick="insertBefore(PAGEHTML.uarLocation, addLocation)"
    
    下面是一个工作片段:

    var PAGEHTML={
    uarAddLocation:`异常活动量
    异常活动开始日期
    异常活动结束日期
    异常活动地点
    `
    };
    函数insertBefor(选择器,html){
    console.log(“选择器:”+selector);
    $(html).insertBefore(“#”+选择器);
    }
    
    +在onclick中添加位置

    <button id="addLocation" onclick="insertBefore(PAGEHTML.uarAddLocation, 'addLocation')">+ Add Location</button>
    
    • 您正在将HTML(
      PAGEHTML.uaradlocation
      )作为
      选择器传递
    • addLocation
      必须用引号括起来
    • PAGEHTML.uarLocation
      不存在,但
      PAGEHTML.uarAddLocation
      存在
    • 您的函数必须具有不同的名称,这会导致本机出现问题
    所以它应该是这样的:

    onclick="insertBefore(PAGEHTML.uarLocation, addLocation)"
    
    下面是一个工作片段:

    var PAGEHTML={
    uarAddLocation:`异常活动量
    异常活动开始日期
    异常活动结束日期
    异常活动地点
    `
    };
    函数insertBefor(选择器,html){
    console.log(“选择器:”+selector);
    $(html).insertBefore(“#”+选择器);
    }
    
    
    +添加位置
    PAGEHTML是全局变量吗?(如果必须能够从内联事件处理程序访问。)您正在将
    PAGEHTML.uarLocation
    传递给您的函数,但您的对象名为
    PAGEHTML.uaradlocation
    @JmJ。我知道,我已经做了更改,但仍然收到相同的错误。PAGEHTML是全局变量吗?(如果必须能够从内联事件处理程序访问。)您正在将
    PAGEHTML.uarLocation
    传递给您的函数,但是您的对象被称为
    PAGEHTML.uaradlocation
    @JmJ。我知道,我已经做了更改,仍然收到可能需要的相同错误,并且来自insertBefore()的定义我认为这些参数是错误的,但这并不能解释为什么会有一个引用错误明确提到PAGEHTML。对吧。。。我想看看完整的代码。还根据JmJ的观察更新了我的答案…为什么“可能用引号括起第二个参数”?第二个参数用作选择器或jquery包装器:
    $(html)
    <代码>
    不存在这可能是必要的,从insertBefore()的定义来看,我认为参数的方式是错误的,但它没有解释为什么会出现显式提到PAGEHTML的引用错误。对。。。我想去看一个公司
    onclick="insertBefore(PAGEHTML.uarLocation, addLocation)"
    
    onclick="insertBefor('addLocation', PAGEHTML.uarAddLocation)"