2013-07-24 2 views
0

저는 약 <li> </li> 개의 데이터 세트를 보유하고있는 큰 javascript 변수를 가지고 있습니다. 예를 들어 일부 단어가 발견되면이 세트를 필터링하고 싶습니다 (배열에서 단어가 발견되면 해당 세트를 제거하십시오). 이 단어들은 배열로 설정합니다 (items = [ "mango", "apple", "pen"];)자바 스크립트를 사용하여 특정 값을 보유하고있는 큰 문자열의 패턴을 제거하는 방법은 무엇입니까?

이 작업을 수행하는 방법을 알려줄 수 있습니까? <li></li> 세트

예 :

<li> 
     <img src="./mango.jpg" width="180" height="148" 
      alt="mango season" class="png"> 
     <a href="/mango/" class="corners">&nbsp;</a> 


      <div class="thumbnail_label">ok</div> 


     <div class="details"> 
     <div class="title"> 
      <a href= 
      "/mango/"> mango</a> 
      <span class="season">2</span> 
     </div> 
     <ul class="subject"> 
      <li>read</li> 
     </ul> 
     <ul class="sub-info"> 
      <li class="location">Europe</li> 
      <li class="price">2</li> 
     </ul> 
     </div> 
    </li> 
+0

"발견 된 항목 "은 무엇을 의미합니까? 어떤 부분이나 문자열 또는 태그 사이의 특정 필드에서 발견 되었습니까? – zsong

+1

DOM 요소 컬렉션, htmlstrings 배열 또는 다른 것을 말하는 "* li sets *"입니까? "* 큰 javascript 변수 *"를 채우는 코드를 보여주십시오 – Bergi

+0

답장을 위해 sze와 bergi에게 감사드립니다. sza 예를 들어 mango가 처음 href 값에서 발견되면 그 li을 제거하고 싶습니다. – user1788736

답변

0

나는 방법/기능을 나열하는거야 난이 어떻게 사용하십시오 - 나는 이것이 인 느낌을 얻을 수 있기 때문에 정확한 코드로 이동하지 않을 일반적인 예. 그래서, var elementArray = document.getElementById('dom_set').querySelector(li); : 목록 항목의 배열을 만들기 어쩌면 <div id="dom_set" display="none">을하고 큰 문자열

  • 의 innerHTML을 할 -

    1. 변경 DOM 요소의 집합에 문자열 당신이 그들에 DOM 기능을 사용할 수 있도록 배열을 반복합니다 : outerHTML은 100 % 크로스 브라우저 호환이 아니므로 프로토 타입을 작성해야합니다 (outerHTML을 프로토 타입하는 방법은 Google에서 할 수 있음)
    2. 이 반복 내에서 단어 배열을 반복하여 확인하고 확인하십시오. 그래서 if(testString.indexOf(badWordArray[j] > -1))이 될 것입니다. IE8에서는 indexOf가 작동하지 않으므로 프로토 타입을 작성해야합니다. 나쁜 단어가있는 경우 '가'문에서
    3. , 당신은 모든 노드를 순환 한 후 노드
    4. 을 제거 할 수 있습니다, 당신은 분명히있다 var cleanString = document.getElementById('dom_set').innerHTML;

    에 의해 문자열로 다시 변환 할 수 있습니다 당신이 채울 수있는 실제 코드가 많이 있지만 이것은 정교한 문자열 조작의 전체 힙을 시도하는 것보다 엉망이 될 가능성이 적은 더 깨끗한 접근법 일 것입니다.

  • 0

    원하는 값 ("mango", "apple", "pen")이 "div"요소 안에있는 "div"요소의 "a"요소의 텍스트 하위 항목이라고 가정하면 div "요소가 클래스"details "이고 jQuery를 사용할 수 있다고 가정하면 다음을 수행 할 수 있습니다.

    function itemsFromHtmlFragment(htmlFragment) { 
        var selector = 'div[class=details] div[class=title] a'; 
        return $(selector, htmlFragment).map(function(idx, el) { 
        return $(el).text().trim(); 
        }); 
    } 
    
    var bigVariable = '<li> <img ... '; 
    itemsFromHtmlFragment(bigVariable); // => ["mango"] 
    
    관련 문제