2013-07-04 5 views
1

HTML과 자바 스크립트를 사용하여 기본 XML 포맷터를 만들었습니다. 이 삭제 기능을 추가하고 싶습니다. 기본적으로 항목을 삭제할 수 있지만 다른 데이터를 삭제하거나 손상시키지 않으려합니다.많은 양의 데이터가 포함 된 텍스트 영역에서 특정 텍스트 삭제

<contact 
<!--John Doe--> 
first_name="John" 
last_name="Doe" 
contact_type="sip" 
account_id="104" 
subscribe_to="sip:[email protected]" 
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" /> 

내가 생각하는 방법은`같이 IndexOf()는 특정 정보를 포함하여이 그룹을 삭제하는 데 사용할 수 미상을 포함하고 </numbers>

<contact에서 삭제 접촉 태그를 찾는 것이 었습니다 .

컨텍스트 : 나는 plunkr에 데모를 추가했습니다. 이 양식 데이터를 소요하고 당신이 다른 방법을 시도 할 수 있습니다 생각 텍스트 영역

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

+0

* * 다른 데이터 *는 영향을받지 않아야합니다. – VisioN

+0

목록에있는 다른 연락처. 그래서 John Doe를 삭제하고 싶었지만 Jane은 삭제하지 않으려했다. –

+0

... – dandavis

답변

0

로 내 보냅니다.

  1. 데이터를 저장할 일부 Javascript 개체를 만듭니다.
  2. 해당 텍스트 영역에 개체가 존재합니다.
  3. 데이터를 추가/제거 할 때는 먼저 개체를 조작 한 다음 다시 표시하십시오. 코드가 조금 복잡하게,하지만 더 명확하고 유연합니다
    //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. 
    

    처럼

코드 보인다.

관련 문제