1

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 タグを見つけてから<contacttoを削除することでした。</numbers>

`indexOf() を使用して、特定の情報を含めることでこのグループを削除できますか?

コンテキスト: plunkr にデモを追加しました。これはフォームデータを受け取り、それをテキストエリアにエクスポートします

http://run.plnkr.co/plunks/b9QKZ7KZP0IlcyeCTTc9/

4

1 に答える 1

0

I think you might try a other way.

  1. Create some Javascript Objects to hold the data.
  2. Present objects to that textarea.
  3. When you add/remove a data, operate the objects first, then re-present.

Code looks like

//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.

Code will become a little complicate, but more clear and flexible.

于 2013-07-04T12:42:04.397 に答える