从包含大量数据的文本区域中删除某些文本
Deleting certain text from textarea with large amounts of data
我使用HTML和Javascript制作了一个基本的XML格式化程序。我想在此添加一个删除功能。基本上,我希望能够删除一个条目,但不会清除或破坏任何其他数据。
<contact
<!--John Doe-->
first_name="John"
last_name="Doe"
contact_type="sip"
account_id="104"
subscribe_to="sip:104@10.10.1.24"
has_voicemail="1"
can_monitor="1"
>
<numbers>
<number dial="1064" dial_prefix="" label="Extension" />
<number dial="555-0123" dial_prefix="718" label="Work Line" primary="1" />
我的想法是找到包含John Doe的联系人标签,并从<contact
删除到</numbers>
不能使用`indexOf()通过包含某些信息来删除此组。
对于上下文:我在plunkr中添加了一个演示。这会获取表单数据并将其导出到文本区域
http://run.plnkr.co/plunks/b9QKZ7KZP0IlcyeCTTc9/
我认为您可以尝试其他方法。
- 创建一些Javascript对象来保存数据
- 将对象呈现到该文本区域
- 添加/删除数据时,请先操作对象,然后重新显示
代码看起来像
//Contact list.
var contacts = [];
// Contact class.
function Contact() {
...
this.name = "";
this.numbers = [];// numbers
...
}
Contact.prototype.toString = function(){
return "<contact name='"" + this.name + ...;
};
// Add new Contact
function addContact(params) {
var contact = new Contact();
// set properties
// contact.name = name;
contacts.push(contact);
showContacts();
}
// Add new Contact
function deleteContact(name) {
for (var i = contacts.length-1; i >= 0; i--) {
if (contacts[i].name == name) {
contacts.splice(i, 1);
return;
}
}
}
// present contacts
function showContacts(){
var text = "";
for(var c in contacts){
text += c.toString();
}
textarea.value = text;
}
// other functions like addNumber etc.
代码会变得有点复杂,但会更加清晰和灵活。
相关文章:
- 兰吉 |如何在 span 标签上使用单击事件删除突出显示的文本
- JavaScript-如果以前不存在文本,如何从文本区域删除新行
- 如何动态添加和删除多个类名的文本
- jQuery从标签中删除括号/文本
- 单击文本时删除文本框的默认数据
- 添加/删除/更改输入文本的部分值
- 在显示/隐藏中单击时删除的文本
- 单击时从表单中删除特定文本
- 使用VBScript或Javascript从文本框(文本区域)中删除最后一行空/空行
- 使用删除文本创建新行
- Wordpress TinyMCE在从文本切换到视觉时,如果锚标记包裹块元素,则会删除锚标记
- 为什么jQuery正在删除文本的最后一个字符
- 如何删除特定文本短语的所有实例
- 通过点击文本区域添加和删除多个标签
- 隐藏<标签>abc标签>之间的文本 - 删除“ ABC”
- JavaScript 拆分字符串 选定的文本删除
- jQuery淡入/淡出替换文本删除链接
- 遍历元素列表并根据内部文本删除元素上的游标样式
- 将逗号后的文本删除到行尾
- 需要有关jQuery条件的帮助,该条件基于匹配的文本删除容器元素