我有一个for循环来创建一个列表。列表中的每个项目都有一个隐藏的输入和功能,如下所示。
<input type="hidden" id="network-id" name="network_id" value="1">
<button type="button" onclick="transfer(someId);"></button>
字符串
我正在使用我的JS代码读取transfer
函数中的隐藏输入。
networkId = $("#network-id").val();
型
但是由于每个元素ID都是相同的,所以它只读取列表中的第一个"network-id"
元素。
读取每个元素的最佳方式是什么?
5条答案
按热度按时间iyzzxitl1#
要读取列表中的每个元素,可以修改HTML代码和JavaScript逻辑。下面是一个使用改进方法的解决方案:
HTML代码:
字符串
JS代码:
型
说明:
通过使用这种方法,您可以读取列表中每个项的隐藏输入值,即使它们具有相同的类名。
8fq7wneg2#
使用一个class name或只取每个按钮的previous element sibling。
个字符
jc3wubiy3#
使用内联事件处理程序通常是not a good idea。
ID应该是唯一的,所以你应该使用其他的东西来标识字段/元素。我建议
data-attributes
。使用
data-attributes
,您甚至不需要隐藏输入字段来存储值。可以直接为按钮指定值。考虑到这一点,这里有一个minimal reproducable example,它使用event Delegation处理按钮,并从按钮的
data-attribute
中读取值。字符串
cuxqih214#
元素ID应唯一。您可以调整代码,使其为每个元素提供相同的类,或者为每个元素提供唯一的id。
j91ykkif5#
创建一个函数,并在每次循环运行后添加++。