使用 jQuery 单击时从作为数组的按钮 ID 获取键

Posted

技术标签:

【中文标题】使用 jQuery 单击时从作为数组的按钮 ID 获取键【英文标题】:Get Key From a Button ID That is an Array When Clicked With jQuery 【发布时间】: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 属性并读取该属性 【参考方案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
    

【讨论】:

以上是关于使用 jQuery 单击时从作为数组的按钮 ID 获取键的主要内容,如果未能解决你的问题,请参考以下文章

MVC 问题在按钮单击时从 JSon 对象填充 JQuery DataTable

如何在图像按钮单击时从Gridview获取ID。

React Hook 在单击 2 个不同的按钮时从 APi 获取数据

单击数据表的删除按钮时从数据库中删除数据

jQuery Datatable:服务器端处理以在单击 Next 时从 DB 中获取数据

单击时从会话数组中取消设置某些项目?