gpt4 book ai didi

javascript - 通过单击按钮禁用-启用超链接

转载 作者:行者123 更新时间:2023-11-30 10:05:55 25 4
gpt4 key购买 nike

我想做类似这样的东西: disable-enable a hyperlink by clicking on radio-buttons但是我想在多个链接上应用这个方法,所以我必须使用元素的类。仅使用“.getElementsByClassName”更改代码是行不通的,我不明白为什么。你能给我解释一下吗? StackoverFlow 问题的答案

var link;

function disable_link() {

document.getElementsByClassName('testlink').disabled=true;

link = document.getElementsByClassName('testlink').href;

document.getElementsByClassName('testlink').removeAttribute('href');

}


function enable_link() {

document.getElementsByClassName('testlink').setAttribute("href",link);

}


</script>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
<p>
<label>
<input type="radio" name="RadioGroup1" value="radio" id="RadioGroup1_0" onchange="disable_link();" />
Disable</label>
<br />
<label>
<input type="radio" name="RadioGroup1" value="radio" id="RadioGroup1_1" onchange="enable_link();" />
enable</label>
<br />
</p>
<a class="testlink" href="http://www.yahoo.com"> test </a>
<a class="testlink" href="http://www.yahoo.com"> test </a>
<a class="testlink" href="http://www.yahoo.com"> test </a>
<a class="testlink" href="http://www.yahoo.com"> test </a>
</form>
</body>
</html>

其他方法也可以。

编辑:感谢大家的回答。

最佳答案

getElementsByClassName返回一个 HTMLCollection,因此您必须遍历它并单独处理每个链接。

在这种情况下,您不能再使用临时变量来保存禁用的链接 href。简单的解决方案是将删除的 href 属性存储在相应元素的另一个属性中。

它看起来像这样:

function disable_link() {
var links = document.getElementsByClassName('testlink');
for (var i = 0; i < links.length; i++) {
links[i].setAttribute('data-href', links[i].getAttribute('href'));
links[i].removeAttribute('href');
}
}

function enable_link() {
var links = document.getElementsByClassName('testlink');
for (var i = 0; i < links.length; i++) {
links[i].setAttribute("href", links[i].getAttribute('data-href'));
}
}

演示: http://jsfiddle.net/5z8av0xg/

关于javascript - 通过单击按钮禁用-启用超链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29188202/

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