javascript - 处理具有相同 id 的元素点击的最佳方法

标签 javascript jquery html

我正在构建一个网站,允许用户从服务器上的文件夹下载文件。

文件从数据库中提取并存储在HTML表中。每一行都有一个下载按钮。我知道我不能只输入 id='download'

单击按钮时处理 JavaScript 函数的最佳方式是什么。

我应该设置类似download-214124的东西

然后只需将 ("download-*") 作为 jQuery 中的选择器?

最佳答案

正如您所说,您不能对所有元素使用通用 ID,因为 ID 必须是唯一的。

相反,您可以对所有元素使用通用类,然后使用 data-* 属性来存储 id,例如

<button class="download" data-id="1235">Download</button>

然后

$('.download').click(function(){
    var id = $(this).data('id');
    //do download code for id here
})

注意:如果您正在处理动态元素,那么您将必须使用事件委托(delegate)来注册处理程序,例如

$(document).on('click', '.download', function() {
  var id = $(this).data('id');
  //do download code for id here
})

关于javascript - 处理具有相同 id 的元素点击的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32108006/

相关文章:

javascript - 如何在函数外访问 JavaScript 函数参数?

javascript - 从 td 获取转义的 html 并将其作为值放入输入中

javascript - 在 React Bootstrap 中,我想用 html 格式化我的文本,但不能

javascript - 无法在 jquery document.ready 中初始化对象

javascript - jQuery:通过搜索输入隐藏表行,解决 td rowspan 和 colspan

html - SAX异常 : bad envelope tag

jquery - 远程 : true option for form_for working for new action, 但不创建操作

javascript - 将change()事件添加到现有的click()函数而不触发第一个事件

javascript - ajax调用不会同步执行

html - 使用 XHTML 1.0 strict with content="text/html; 超过 HTML 4.01 strict 有什么优点?