gpt4 book ai didi

javascript - JS事件注册而不是onclick...但是如何使其可重用?解析ID?

转载 作者:行者123 更新时间:2023-11-28 00:05:08 25 4
gpt4 key购买 nike

我看到了这个question第一个答案非常适合所提出的问题...但是如果我想对不同的命名元素一遍又一遍地重用代码怎么办?

让我具体说一下。

通过我的代码(网站上的多个页面都调用相同的 file.js),我希望拥有各种内部“链接”,现在我将其编写为:

<a onclick="testFunction('targetA');">test A</a>
<a onclick="testFunction('targetB');">test B</a>

这会相应地调用 javascript。这样做的好处是可以一遍又一遍地使用相同的 JS,而无需为每个“目标”编写一个。缺点是,除了我每次都必须在上面输入困惑的内容之外,根据那个人的回答,这不是正确的做事方式。

那么有没有一种“正确的方法”可以让我做这样的事情(意识到这是伪代码):

<a id="test.A">test A</a>
<a id="test.B">test B</a>

并且不必在 JS 文件中显式定义 test.A 与 test.B(与 C、D、E...)?例如,JS 可以注册到“#test”,但解析出 .X 并将其作为变量进行操作?

或者???

最佳答案

我不知道这是否太夸张了,也许我不明白你想要什么 - 但那又怎么样

var tests = document.querySelectorAll('[id^="test."]');
[].forEach.call(tests, function(a) {
a.addEventListener('click', function(e) {
alert(e.target.id.split('.')[1]+' clicked');
}, false);
})

会说“B clicked”等。这将针对您想要的所有 test.* id。显然,您不必对点击事件中的任何内容使用 id,它可以是保存值或其他内容的属性。

演示 -> http://jsfiddle.net/sbeyer8f/

关于javascript - JS事件注册而不是onclick...但是如何使其可重用?解析ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31418762/

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