代码之家  ›  专栏  ›  技术社区  ›  YaddyVirus

如何在`onclick`函数中使用element id作为JS函数参数?

  •  0
  • YaddyVirus  · 技术社区  · 7 年前

    我试着用我的anchor标签作为一个按钮,在点击时运行JS函数。

    HTML格式-

    <a  class="ghost-button-transition" href="#" onclick="navforward(about)" style="margin-right:5px;">About me</a>
    

    JS公司-

    function navforward(name){
      var str = "#"+String(name);
      $("#intro").fadeOut(1000).delay(1500);
      $(str).fadeIn(1000);
    }
    

    每当我点击我的 <a>

    错误:语法错误,无法识别的表达式:#[object htmldevelement]

    现在我明白这是因为我的 navforward 功能是治疗 name 参数作为对象,因此不能真正使用它作为句柄来调用相应的HTML元素。但是为什么即使在把参数转换成字符串之后它也不能工作呢?

    我也试过了- onclick="navforward("about") onclick="navforward("#about") 但他们也给出了错误。

    我该怎么做?

    3 回复  |  直到 7 年前
        1
  •  3
  •   Zenoo    7 年前

    about 对象是 HTMLDivElement .

    就用它的 id 属性而不是将其转换为字符串:

    function navforward(name){
      let str = "#"+name.id;
      $("#intro").fadeOut(1000).delay(1500);
      $(str).fadeIn(1000);
    }
    

    作为 在评论中指出,你可以简单地使用你的 关于

    function navforward(name){
      $("#intro").fadeOut(1000).delay(1500);
      $(name).fadeIn(1000);
    }
    
        2
  •  0
  •   Tanupriya    7 年前

    作为字符串传递:

    HTML格式:

    <a class="ghost-button-transition" href="#" onclick="navforward('about')" style="margin-right:5px;">About me</a>
    

    function navforward(name){
      var str = "#"+name;
      $("#intro").fadeOut(1000).delay(1500);
      $(str).fadeIn(1000);
    }
    
        3
  •  0
  •   Rajkumar A    7 年前

    试试这个。如果你通过了 this

    <a id="about" class="ghost-button-transition" href="#" onclick="navforward(this)" style="margin-right:5px;">About me</a>
    
    function navforward(obj){
      $("#" + obj.id).fadeOut(1000).delay(1500).fadeIn(1000);
    }