【问题标题】:How to pass the button value into my onclick event function?如何将按钮值传递给我的 onclick 事件函数?
【发布时间】:2016-10-19 14:21:23
【问题描述】:
<input type="button" value="mybutton1" onclick="dosomething()">test

点击按钮时调用的dsomething函数,如何将按钮mybutton1的值作为参数传递给dsomething函数?

【问题讨论】:

    标签: javascript


    【解决方案1】:

    您可以使用this.value 将值传递给函数,其中this 指向按钮

    <input type="button" value="mybutton1" onclick="dosomething(this.value)">
    

    然后在函数中访问那个值

    function dosomething(val){
      console.log(val);
    }
    

    【讨论】:

      【解决方案2】:

      也许你可以看看 JavaScript 中的闭包。 这是一个有效的解决方案:

      <!DOCTYPE html>
      <html>
          <head>
              <meta charset="utf-8" />
              <title>Test</title>
          </head>
          <body>
              <p class="button">Button 0</p>
              <p class="button">Button 1</p>
              <p class="button">Button 2</p>
              <script>
                  var buttons = document.getElementsByClassName('button');
                  for (var i=0 ; i < buttons.length ; i++){
                    (function(index){
                      buttons[index].onclick = function(){
                        alert("I am button " + index);
                      };
                    })(i)
                  }
              </script>
          </body>
      </html>

      【讨论】:

      • 注意:这些按钮在脚本执行时必须存在。因此,将脚本放在 html 文件中 下面(在按钮之后)(如本答案所示),或“文档准备就绪”函数中。
      • 如果使用 jquery,访问点击的元素就是$(this)。例如:$( ".button" ).on( "click", function() { alert("I am a button with value " + $(this).attr('value')); }` 定义了一个点击函数,该函数访问被点击按钮上名为value 的属性。也就是说,如果每个按钮定义类似于:&lt;p class="button" value="my value here"&gt;Button 0&lt;/p&gt;。使用 jquery,不需要闭包,也不需要显式的按钮数组。
      【解决方案3】:

      您可以通过传递 this 将元素传递给函数 &lt;input type="button" value="mybutton1" onclick="dosomething(this)"&gt;test。然后在函数中你可以像这样访问值:

      function dosomething(element) {
        console.log(element.value);
      }
      

      【讨论】:

        【解决方案4】:

        你可以这样做。

        <input type="button" value="mybutton1" onclick="dosomething(this)">
        
        function dosomething(element){
            alert("value is "+element.value); //you can print any value like id,class,value,innerHTML etc.
        };
        

        【讨论】:

        • 你能告诉我如何获取 element.value 吗? //您可以打印任何值,例如 id、class、value、innerHTML 等。如何打印?
        • 我不明白你的问题。你的意思是console.log元素吗?这里元素表示事件...
        • 哦不,我其实想知道如何获取这个元素值。我这样做了。谢谢。
        【解决方案5】:

        您可以通过在 onclick 函数中使用该元素的 id 来获取价值

        function dosomething(){
             var buttonValue = document.getElementById('buttonId').value;
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-04-01
          • 1970-01-01
          • 1970-01-01
          • 2018-06-24
          • 2018-04-19
          • 2020-04-26
          相关资源
          最近更新 更多