javascript - 如何获取 2 个不同行但 ID 相同的选定选项的值
问题描述
我的表在每个循环中,其 id 设置为id="batchNo"
.
我想获取每一行select option
选定值的值。
我尝试使用以下代码,但它返回第 1 行选定的值。
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js">
</script>
<table>
<tr>
<td>
<select id="batchNo">
<option value="341" selected>this is 341</option>
<option value="53">this is 53</option>
</select>
</td>
<td><input type="text" onfocusout="return alert($('#batchNo').find(':selected').text())"></td>
</tr>
<tr>
<td>
<select id="batchNo">
<option value="341">this is 341</option>
<option value="53" selected>this is 53</option>
</select>
</td>
<td><input type="text" onfocusout="return alert($('#batchNo').find(':selected').text())"></td>
</tr>
</table>
在第二排的焦点上,它应该返回this is 53
,但它给出了this is 341
解决方案
首先,对两个不同的元素使用相同的 id 是不好的做法
方法一(使用类名)
<select class = 'batchNo'>
</select>
var result = document.querySelectorAll('.batchNo')
console.log(result) // prints list of all select
querySelectorAll() 将为您提供值列表,然后您可以遍历它并获取所有选择元素的值
方法 2(使用 ID)
正如您所说,您的表处于 for 循环中,那么您可以做的是获得迭代编号。for循环并生成动态ID如下
<select id="batchNo{{ for loop iteration no }}">
</select>
它会生成像batchNo1,batchNo2,batchNo3 ......
推荐阅读
- php - 从帖子中获取第一张图片
- testing - 邮递员自动化测试请帮我
- c - C 指针数组不适用于 memcpy
- java - 如何为通过 Sparkjava 构建的 API 创建 API 文档?
- python - 如何解决 Pandas 的属性错误:“AttributeError: module 'pandas' has no attribute 'StringDtype'”?
- installation - Inno Setup RenameFile 和 FileCopy 在某些计算机上莫名其妙地失败
- javascript - this.state.message null 不是对象
- c++ - 在 std::transform 中使用构造函数作为函数的最佳方法?
- html - 选择一秒钟
标签?
- c++ - 如何检查在 Linux (ubuntu 16.04) 上运行 .NET core 和 C++ 的进程上的内存泄漏