【问题标题】:Get Key From a Button ID That is an Array When Clicked With jQuery使用 jQuery 单击时从作为数组的按钮 ID 获取键
【发布时间】:2021-04-20 12:04:32
【问题描述】:

嗨,我对 jQuery 有点陌生。我正在尝试从按钮 id 中获取键值,该按钮 id 在单击时是一个数组,如下所示:

<button id="button[1]">Submit</button>
<button id="button[2]">Submit</button>
<button id="button[3]">Submit</button>
<button id="button[4]">Submit</button>

预期的结果是单击时是 1 或 2 等。

在 PHP 中,我可以通过获取数组的名称来实现这一点,如下所示:

<html>
    <button name="button[1]">Submit</button>
    <button name="button[2]">Submit</button>
    <button name="button[3]">Submit</button>
    <button name="button[4]">Submit</button>
</html>
<?php
    key($_POST['button']);
?>

如何使用 jQuery 实现这一点?

【问题讨论】:

  • 向按钮添加data-id 属性并读取该属性

标签: php jquery arrays


【解决方案1】:

id 属性是您赋予元素的唯一标签,它是一个字符串值,应仅用于选择。所以首先你不能只将字符串button[1] 转换为数组,但这是对id 的滥用。

您应该使用value 属性来分享此类信息,例如&lt;button id="button1" value="1"&gt;text here&lt;/button&gt; 并使用$('#button1').value() 阅读它

【讨论】:

    【解决方案2】:
    $( "button[name^='button']" ).on('click',function(){
    var str = ($(this).attr('name'));
     var matches = str.match(/(\d+)/);
                
         alert(matches[0]); 
            
    });
    

    这将在所有具有按钮名称值的按钮上创建一个单击侦听器。所以当你点击它时,它会提醒当前点击按钮名称键属性值

    【讨论】:

      【解决方案3】:

      我会建议一种更好的方法来管理这种情况,您可以使用按钮id 属性,您可以为每个按钮分配一个唯一编号:

      <html>
          <button id="1">Submit</button>
          <button id="2">Submit</button>
          <button id="3">Submit</button>
          <button id="4">Submit</button>
      </html>
      

      并创建一个 jquery 函数来捕捉按钮上的点击事件:

      $(document).ready(function(){
          $('button').on('click', function() {
            $(this).attr('id'); // here you get the id value of selected button
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2017-06-27
        • 2020-03-30
        • 1970-01-01
        • 1970-01-01
        • 2012-06-14
        • 1970-01-01
        • 2021-08-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多