这是新的js代码,您可以使用它-
<div id='btns'>
<p>
<!-- adding id to element, helps to maintain the list
of element which have been clicked, and also helps in
distinguishing between two elements have same text.
Dont forget to add href="#' or href="javascript:void(0)"
else your page may refresh and form data will be lost -->
<a id="a1" href='#'>category</a>
</p>
<p>
<a id="a2" href='#'>url</a>
</p>
</div>
<textarea id='ta' rows='10' cols='20'></textarea></body>
Javascript -
window.onload = btnsInit;
var selected = {};//keeps list of selected links
function btnsInit() {
var i, a = document.getElementById('btns').getElementsByTagName('a');
for (i = 0; i < a.length; ++i) {
a[i].onclick = btnClick;
}
}
function btnClick(e) {
if (selected[this.id]) {
delete selected[this.id];//deleting if already been clicked
} else {
selected[this.id] = this.innerHTML;//adding to the selected list
}
updateTextArea();
xPreventDefault(e);
return false;
}
function updateTextArea() {
var ta = document.getElementById('ta');
var val = "";
for ( var id in selected) {
val += selected[id] + ",";
}
ta.value = val;//updating from selected list
}
function xPreventDefault(e) {
if (e && e.preventDefault)
e.preventDefault();
else if (window.event)
window.event.returnValue = false;
}
您的代码有问题 -
btnsInit
实际上并没有将 onclick 侦听器分配给<a>
元素。
- 重新单击链接未处理或未正确处理(如果已处理)。
- 为刷新页面
href=' '
的标签使用属性/值。a
更新 - 评论中提出的问题
我的代码在刷新页面时是否不起作用?
不,那不是。它缺少重新点击处理并且btnsInit
无法正常工作。
删除是预定义的功能吗?
delete
是一个 JavaScript 关键字,用于删除对象属性。
关于删除关键字
“这”有什么用?
this
是另一个关键字,它在上下文中保存对象的引用,在这种情况下,它保存单击的元素。
有关此关键字的更多信息