2014-09-09 2 views
0

나는 2 일 동안 검색하고 시도했지만 행운은 전혀 없습니다. 내가 노력하고있어숨겨진 div 값이 XML의 속성과 동일하면 클래스에 추가

는 :

난 내가에 파일을 외부 XML에서 값과 일치하는 코드를 저장하는 숨겨진 사업부를 포함 XSLT에서 foreach 문을 통해 여러 사업부의의를 생성합니다. 다음과 같이 :

<div class="pakket_content"> 
    <a href="http://"> 
     <div class="waardering_wrapper col-xs-12"> 
      <div class="sterwaardering col-xs-8"> 
       <img src="http://"> 
      </div> 
      <div class="CODE">CODE</div> 
      <div class="waardering col-xs-4"> 
       <p>-</p> 
      </div> 
      <div class="waardering pull-right"> 
       <b>-</b> 
      </div> 
     </div> 
    </a> 
    <a href=""> 
     <button type="button" class="btn btn-default btn-md pull-right col-xs-12"> 
      Nu boeken! 
      <span class="glyphicon glyphicon-arrow-right"></span> 
     </button> 
    </a> 
</div> 

여기서 div 클래스 'code'는 일치시킬 코드를 포함합니다. 이 나오는

XML은 다음과 같습니다

<entities> 
    <accommodation cms-id="458245" external-id="CODE" name="Trip A"> 
     <destination cms-id="45541" name="Paramaribo" level="destination"/> 
     <country cms-id="4545" name="Suriname" level="country"/> 
     <accommodation-type>Hotel</accommodation-type> 
     <testimonial-count>88</testimonial-count> 
     <average-testimonial-score>7.6</average-testimonial-score> 
     <deep-link> 
      http://link.com 
     </deep-link> 
     <testimonial-count-per-language>88</testimonial-count-per-language> 
     <testimonial-count-all>88</testimonial-count-all> 
     <average-testimonial-score-all>7.6</average-testimonial-score-all> 
    </accommodation> 
</entities> 

지금 내가있는 외부 ID 속성의 값과 동일 할 때 "waardering"를 div에하는 평균 증명서 점수를 추가하고 싶었다. 그런데 어떻게 생각 하나?

는이 같은 사업부 클래스와 속성의 값을 통해 반복하여 시도 :

$(document).ready(function() { 

    $.ajax({ 
     type: "GET", 
     url: "file.xml", 
     dataType: "xml", 
     success: function(xml) { 

      $(xml).find('accommodation').each(function(index) { 
       var cijfer = $(this).find('average-testimonial-score-all').text(); 

       $('.CODE').each(function(index) { 

        var divcode = $(this).text(); 

        $.attr('external-id').each(function(index) { 
         var attrcode = $(this).text(); 

         if (divcode == attrcode) { 
          $(".waardering").append(cijfer); 
         }; 
        }); 
       }); 
      }); 
     } 
    }); 
}); 

를 어떤 결과. 누군가가 이걸 가지고 올바른 방향으로 나를 밀 수 있습니까?

+0

'accocode'클래스의 요소를 볼 수 없습니까? –

+0

죄송합니다.이 코드는 "CODE"클래스였습니다. 질문에서 변경했습니다. – user3657306

+0

'$ .attr ('external-id'). 각'은 완전히 잘못된 행입니다. [보세요] (http://api.jquery.com/attr/)'.attr()'이 어떻게 작동하는지. – Regent

답변

0
  • 올바른 방법으로 accommodationexternal-id을 가져 오기 (how.attr()에 따라 작동하도록되어있다)이 코드는 정상적으로 작동합니다.

  • 테스트를 위해 Ajax 요청이 생략되었습니다.

Fiddle.

$(document).ready(function() 
{ 
    var xml = '<entities><accommodation cms-id="458245" external-id="CODE" name="Trip A"> <destination cms-id="45541" name="Paramaribo" level="destination"/> <country cms-id="4545" name="Suriname" level="country"/> <accommodation-type>Hotel</accommodation-type> <testimonial-count>88</testimonial-count> <average-testimonial-score>7.6</average-testimonial-score> <deep-link>http://link.com</deep-link> <testimonial-count-per-language>88</testimonial-count-per-language> <testimonial-count-all>88</testimonial-count-all> <average-testimonial-score-all>7.6</average-testimonial-score-all> </accommodation></entities>'; 

    $(xml).find('accommodation').each(function(index) 
    { 
     var cijfer = $(this).find('average-testimonial-score-all').text(); 
     var externalId = $(this).attr("external-id"); 
     $('.CODE').each(function(index) 
     { 
      var divcode = $(this).text(); 
      if (divcode == externalId) 
      { 
       $(".waardering").append(cijfer); 
      }; 
     }); 
    }); 
}); 
+0

그래서 하나의 반복 만 (XML에서) 실제로 충분했습니다. 그리고 네, .attr()에 대해 자세히 설명해주었습니다. :) 고맙습니다. 한 가지 문제가 계속 발생하지만 이제는 div 당 올바른 'cijfer'변수를 코드 div에 추가합니다. 어떻게 든 구별 할 수 있습니까? 예 : http://jsfiddle.net/5gpvkku6/1/ – user3657306

+0

@ user3657306 바로 옆에'waardering' 만 추가하려면'.next()'를 사용할 수 있습니다. [피들] (http://jsfiddle.net/5gpvkku6/3/). 다음에'waardering' ('col-xs-4'와'pull-right') 둘 다에 추가하고 싶다면'.siblings()'를 사용할 수 있습니다. [피들] (http://jsfiddle.net/5gpvkku6/4/). – Regent

+0

.siblings()는 내가 필요한 것입니다. 다시 한번 감사드립니다. – user3657306

관련 문제