Javascript 处理具有相同ID的元素的单击的最佳方法
我正在建立一个网站,允许用户从服务器上的文件夹下载文件 这些文件从Javascript 处理具有相同ID的元素的单击的最佳方法,javascript,jquery,html,Javascript,Jquery,Html,我正在建立一个网站,允许用户从服务器上的文件夹下载文件 这些文件从数据库中提取,并存储在HTML表中。每行有一个下载按钮。我知道我不能把id='download'放进去 单击按钮时处理JavaScript函数的最佳方式是什么 我应该设置类似于download-214124 然后只需将(“下载-*”)作为jQuery?中的选择器,正如您所说的,您不能对所有元素使用公共ID,因为ID必须是唯一的 相反,您可以对所有元素使用公共类,然后使用data-*属性来存储id,如 <button clas
数据库
中提取,并存储在HTML表
中。每行有一个下载按钮。我知道我不能把id='download'
放进去
单击按钮时处理JavaScript函数的最佳方式是什么
我应该设置类似于download-214124
然后只需将
(“下载-*”)
作为jQuery
?中的选择器,正如您所说的,您不能对所有元素使用公共ID,因为ID必须是唯一的
相反,您可以对所有元素使用公共类,然后使用data-*
属性来存储id,如
<button class="download" data-id="1235">Download</button>
注意:如果您处理的是动态元素,那么必须使用事件委托来注册处理程序,如
$(document).on('click', '.download', function() {
var id = $(this).data('id');
//do download code for id here
})
data-*
属性来存储id,如
<button class="download" data-id="1235">Download</button>
注意:如果您处理的是动态元素,那么必须使用事件委托来注册处理程序,如
$(document).on('click', '.download', function() {
var id = $(this).data('id');
//do download code for id here
})
data-*
属性来存储id,如
<button class="download" data-id="1235">Download</button>
注意:如果您处理的是动态元素,那么必须使用事件委托来注册处理程序,如
$(document).on('click', '.download', function() {
var id = $(this).data('id');
//do download code for id here
})
data-*
属性来存储id,如
<button class="download" data-id="1235">Download</button>
注意:如果您处理的是动态元素,那么必须使用事件委托来注册处理程序,如
$(document).on('click', '.download', function() {
var id = $(this).data('id');
//do download code for id here
})
HTML5
提供了数据属性
,允许您存储与DOM
元素相关的数据。这使生活变得超级容易与JavaScript
连接jQuery
具有data()
函数来访问元素的数据属性
你可以像下面这样做
HTML
<table>
<tr><td>
<p>file with id 1</p>
<button data-id="1">download</button>
</td></tr>
<tr><td>
<p>file with id 2</p>
<button data-id="2">download</button>
</td></tr>
<tr><td>
<p>file with id 3</p>
<button data-id="2">download</button>
</td></tr>
</table>
这是一个解决方案。HTML5
提供了数据属性
,允许您存储与DOM
元素相关的数据。这使生活变得超级容易与JavaScript
连接jQuery
具有data()
函数来访问元素的数据属性
你可以像下面这样做
HTML
<table>
<tr><td>
<p>file with id 1</p>
<button data-id="1">download</button>
</td></tr>
<tr><td>
<p>file with id 2</p>
<button data-id="2">download</button>
</td></tr>
<tr><td>
<p>file with id 3</p>
<button data-id="2">download</button>
</td></tr>
</table>
这是一个解决方案。HTML5
提供了数据属性
,允许您存储与DOM
元素相关的数据。这使生活变得超级容易与JavaScript
连接jQuery
具有data()
函数来访问元素的数据属性
你可以像下面这样做
HTML
<table>
<tr><td>
<p>file with id 1</p>
<button data-id="1">download</button>
</td></tr>
<tr><td>
<p>file with id 2</p>
<button data-id="2">download</button>
</td></tr>
<tr><td>
<p>file with id 3</p>
<button data-id="2">download</button>
</td></tr>
</table>
这是一个解决方案。HTML5
提供了数据属性
,允许您存储与DOM
元素相关的数据。这使生活变得超级容易与JavaScript
连接jQuery
具有data()
函数来访问元素的数据属性
你可以像下面这样做
HTML
<table>
<tr><td>
<p>file with id 1</p>
<button data-id="1">download</button>
</td></tr>
<tr><td>
<p>file with id 2</p>
<button data-id="2">download</button>
</td></tr>
<tr><td>
<p>file with id 3</p>
<button data-id="2">download</button>
</td></tr>
</table>
下面是解决这个问题的方法。如果使用JavaScript构建HTML表,则可以在运行时附加事件处理程序,而不需要任何ID
一个很好的例子是,当您通过JavaScript在结果数组中循环来构建HTML结构时。在这种情况下,可以使用闭包来维护对与特定HTML元素对应的结果数据的引用,并在调用事件处理程序时使用该数据
在下面的示例中,附加到每个按钮的事件处理程序能够直接调用数组中相应对象的值
属性;我们不需要向button元素添加任何东西(既不需要ID也不需要数据属性)来维护该引用
var-dataResults=[{title:“一”,值:1},{title:“二”,值:2},{title:“三”,值:3},{title:“四”,值:4}];
var output=document.getElementById(“输出”);
对于(var i=0,len=dataResults.length;i
如果使用JavaScript构建HTML表,则可以在运行时附加事件处理程序,而无需任何ID
一个很好的例子是,当您通过JavaScript在结果数组中循环来构建HTML结构时。在这种情况下,可以使用闭包来维护对与特定HTML元素对应的结果数据的引用,并在调用事件处理程序时使用该数据
在下面的示例中,附加到每个按钮的事件处理程序能够直接调用数组中相应对象的值
属性;我们不需要向button元素添加任何东西(既不需要ID也不需要数据属性)来维护该引用<