gpt4 book ai didi

javascript - 获取元素编号或为其设置标识符

转载 作者:行者123 更新时间:2023-11-29 17:18:08 25 4
gpt4 key购买 nike

我有一个在 HTML 中动态修改的列表。像这样:

<ol>
<li>Some value<li>
<li>another</li>
<li>more</li>
<li>more<li>
<li>more</li>
</ol>

我想做的是,当用户单击该列表中的某个元素时,我想调用一个函数并传递一个数字参数,该参数代表该 <li> 的偏移量。相对于 parent <ol> .

我应该怎么做?

我正在使用 jQuery。

最佳答案

结合使用 on()(用于绑定(bind)最少的事件处理程序并处理您提到的动态更新)和 index() 方法来确定元素的相对于其父项的索引。

$("ol").on("click", "li", function() {
yourFunction($(this).index());
});

jsFiddle .


如果你没有 jQuery...

var ol = document.querySelector("ol");
var olLi = ol.querySelectorAll("li");
var handleClick = function(e) {
var target = e.target;
var index = 0;

while (target = target.previousElementSibling) {
index++;
}

yourFunction(index);

};

ol.addEventListener("click", handleClick);

jsFiddle .


如果你不得不支持没有 jQuery 的旧浏览器......

var ol = document.getElementsByTagName("ol")[0];
var olLi = ol.getElementsByTagName("li");
var handleClick = function(e) {
e = e || window.event;
var target = e.target || e.srcElement;
var index = 0;

while (target = target.previousSibling) {
(target.nodeType == 1) && (index++);
}

yourFunction(index);

};

ol.addEventListener && ol.addEventListener("click", handleClick);
ol.attachEvent && ol.attachEvent("onclick", handleClick);

jsFiddle .

关于javascript - 获取元素编号或为其设置标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15127638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com