如何警告多组ul列表元素的目标id
How to Alert target id of multiple sets of ul list elements?
我有如下列表元素:
<ul id="listSet">
<li id="dy1">Dynamic values</li>
<li id="dy2">Dynamic values</li>
</ul>
li
的id
是动态的,由数据库填充。
当我点击任何项目,即动态值,他们的id
显示为警报。
显示警告的代码:
function getEventTarget(e) {
e = e || window.event;
return e.target || e.srcElement;
}
var ul = document.getElementById('listSet');
ul.onclick = function(event) {
var target = getEventTarget(event);
alert(target.id);
};
但我有多组ul
从数据库检索,例如:
<ul id="listSet">
<li id="dy1">Dynamic values</li>
<li id="dy2">Dynamic values</li>
</ul>
<ul id="listSet">
<li id="dy3">Dynamic values</li>
<li id="dy4">Dynamic values</li>
</ul>
<ul id="listSet">
<li id="dy5">Dynamic values</li>
<li id="dy6">Dynamic values</li>
</ul>
对alert使用相同的脚本,显示只对第一组ul
点击alert,当点击li
和ul id = "listSet"
下的任何项目时如何显示警报?
谢谢
一个
document
中不能有多个elements
具有相同的id
值
使用class
代替ID
属性和getElementsByClassName
或querySelectorAll
来选择元素。
[].forEach.call
用于迭代具有length
属性的元素,for-loop
也可以使用。
function getEventTarget(e) {
e = e || window.event;
return e.target || e.srcElement;
}
var ul = document.getElementsByClassName('listSet');
[].forEach.call(ul, function(el) {
el.onclick = function(event) {
var target = getEventTarget(event);
alert(target.id);
};
});
<ul class="listSet">
<li id="dy1">Dynamic values</li>
<li id="dy2">Dynamic values</li>
</ul>
<ul class="listSet">
<li id="dy3">Dynamic values</li>
<li id="dy4">Dynamic values</li>
</ul>
<ul class="listSet">
<li id="dy5">Dynamic values</li>
<li id="dy6">Dynamic values</li>
</ul>
HTML规范要求ID
属性在一个页面中是唯一的:
该属性为元素指定一个名称。此名称在文档中必须唯一。
如果你有几个元素具有相同的ID,你的HTML是无效的。
所以,getElementById()
应该只返回一个元素。你不能让它返回多个元素。
您可以使用getElementByClassName,然后在所有检索到的元素上使用某种循环,并在它们上附加事件。
元素不能有相同的ID,但可以有相同的类名,不需要类名或ul元素的ID属性。用Jquery很容易处理使用以下代码
$("li").on("click",function(){
id=$(this).attr("id");
alert(id);
});
并在下面的链接中查看实时演示https://jsfiddle.net/kjakzc7d/
相关文章:
- 将列表元素动画制作到顶部
- 使用Razor和javascript来获得下拉列表元素
- 根据列表元素的值使用JQuery获取列表元素
- 将列表元素动态添加到ul元素中
- 使用 jquery 库获取锚点列表元素内的文本
- 在没有大量回调函数的情况下在列表元素上循环播放同一动画
- 使用JSON和JavaScript添加额外的html列表元素
- 范围和列表元素在 DIV 中换行
- jQuery:影响相同深度的列表元素
- 所选列表元素不会保持选中状态(通过ajax请求更新后)
- 一次显示n个列表元素,jQuery
- 将列表元素宽度设置为文本宽度
- 选择列表元素(捕获向下/向上箭头)
- 限制要在嵌套列表jQuery中添加的列表元素的数量
- 如何从有序列表中选择一个列表元素
- 如何使用 JavaScript 增长树的 UL 和 ol 列表元素
- 如何警告多组ul列表元素的目标id
- 水平滑动ul列表元素
- JSP ul列表元素动态选择
- Jquery隐藏/显示列表元素从ul