制作一个锚点切换函数,点击时将数据附加到文本区域,再点击时删除
make an anchor toggle function which appends data to textarea on click and removes on reclick
我正在尝试制作一个锚点切换函数,该函数在单击时将数据附加到文本区域,并在重新单击时删除数据。这是小提琴。
`
function btnsInit()
{
var i, a = document.getElementById('btns').getElementsByTagName('a');
for (i = 0; i < a.length; ++i)
{
var str=document.getElementById('ta').value;
var index= str.indexOf(a[i]);
if(index!=-1)
{
a[i].onclick = btnClick;
}
else
{
str.replace(a[i],"_");
}
}
}
function btnClick(e)
{
document.getElementById('ta').value += this.firstChild.nodeValue + ',';
xPreventDefault(e);
return false;
}
`请尽快回复
这是新的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"有什么用
this
是另一个关键字,它保存上下文中对象的引用,在本例中,它保存单击的元素。关于这个关键词的更多信息
相关文章:
- 如何在iOS应用程序中从Firebase中删除超过6小时的数据
- 谷歌地图/Angular JS:地图更新并不总是反映数据,并且可以't删除标记
- 如何从表中的api中删除表tr数据comping
- 单击文本时删除文本框的默认数据
- 停止JSON.parse()从JSON字符串数据中删除尾随零
- JavaScript - 合并两个对象数组并根据属性值删除重复数据
- 使用AJAX传递的数据编辑XML文件-正在删除XML数据
- 如何删除Localstorage中的数据
- 如何在字符串中的值之前删除字符串中的动态数据?/ 使用 Lodash 的 _.trimStart 与动态数据
- 从服务器中删除映射数据,丢失订阅
- 如何根据某些条件向可编辑的jquery数据表添加或删除按钮
- jQuery:从数据属性中删除除前4个字符外的所有字符
- 使用nodeJS进行重复数据删除
- 改进JS重复数据删除函数的性能
- 我如何合并包含对象的JavaScript数组,重复数据删除并保留新对象
- 编辑对新添加的数据删除不起作用
- Typeahead.js预取和远程数据源之间的重复数据删除
- 在NodeJS中使用gridfs通过元数据删除文件
- Ajax javascript数据删除最后一次
- 如何使用来自其他数组的数据删除数组项