2011-03-18 5 views
0

xml을 jquery로 구문 분석 할 수 있습니다. 이제 구문 분석 된 텍스트를 간단한 텍스트 대신 하이퍼 링크로 지정합니다. 아래는 제가 작성한 것입니다. 여기 xml 태그에 링크를 추가하고 jquery로 구문 분석

$(xml).find("customers") 
    .each(function(){ 
      $("#guys").append("<div class="mybox"><a href="+$(this).find('customer_link').text()+"target="_blank">"+$(this).find('customer_company').text()"</a></div>");                      

}); 

그리고

는 XML

<customer_company><![CDATA[Google<br>]]></customer_company> 
    <customer_link>http://www.google.com</customer_link> 

</myguys> 

<myguys> 

    <customer_company><![CDATA[EMC<br>]]></customer_company> 
    <customer_link>http://www.emc.com</customer_link> 

</myguys> 
</info> 

나는, 나는이이 태그와 함께 단지 구문 오류라고 생각 논리에 아무 문제가없는 알고에게 있습니다.

$("#guys").append("<div class="mybox">....... 

당신이 가능하게 '돈 때 태그를 폐쇄하고 : 누군가가 코드의 조각에 보라 내가 여기에 실수를하고있는 중이 야 어디 있는지 말해 그리고 좋은 튜토리얼

+0

나는 그것을 편집했지만 다시 게시하면 코드를 작성하는 데 약간의 시간을 투자 할 것을 제안합니다. :-) –

답변

1

견적 스타일을 혼합합니다. 작은 따옴표 (') 문자열에는 이스케이프 처리되지 않은 큰 따옴표 (")가 포함될 수 있으며 그 반대의 경우도 마찬가지입니다. 따옴표로 묶지 않은 문자열에서 이스케이프 처리되지 않은 큰 따옴표를 사용하면 코드가 손상됩니다.

$("#guys").append("<div class="mybox"><a href="+$(this).find('customer_link') 
ss^ se^  ss^   se^ ss^  se^   ss^   se^ 

.text()+"target="_blank">"+$(this).find('customer_company').text()"</a></div>"); 
     ss^  se^ ss^e^   ss^    se^  ss^  se^ 

ss == string start, 
se == string end 

당신은이 mybox처럼 무작위로 정의되지 않은 참조를 생성하지만 의도 문자열을 구축하지 않는 방법을 볼 수 있습니다. 이 시도 :

$("#guys").append("<div class='mybox'><a href=" + 
    $(this).find("customer_link").text() + 
    "' target='_blank'>" + 
    $(this).find("customer_company").text() + 
    "</a></div>"); 

을 양자 택일로, 당신은 모든 요소를 ​​구축하고 완전히 문자열에 포함 된 따옴표 특성을 피하기 위해 jQuery를 사용할 수 있습니다

$("#guys").append($("<div />") 
         .addClass("mybox") 
         .append($('<a/>', { 
          href: $(this).find("customer_link").text(), 
          target: "_blank", 
          text: $(this).find("customer_company").text() 
         }))); 

당신의 XML의 CDATA가 발생할 것입니다 jQuery 문제는 xml 스펙을 따르지 않고 html처럼 XML을 파싱하기 때문입니다. customer_company 요소에서 CDATA<br>을 제거 할 수없는 경우 jParse과 같은 플러그인을 사용하여 XML 구문 분석을하는 것이 좋습니다.

+0

코드는 각 태그에 대한 링크 태그는 Google을 클릭하면 http : //www.google.comhttp : //www.google.com을 열고 emc은 http : //www.google.comhttp : // www를 엽니 다. .google.com – singularity

+0

@singularity, 그것은 나를 위해 작동하는 것 같습니다 - 여기에 [jQuery에 내장 된 요소에 대한 바이올린] (http://jsfiddle.net/q6WgG/1/)과 [문자열 예를위한 바이올린] (http : //jsfiddle.net/NZEuk/) – jball

+0

@singularity, 내 예제 문자열에 오타가 있음을 눈치 챘으므로 두 번째 예제에서는 링크 텍스트에 대해''customer_link "'를 참조하고있었습니다. 둘 다. – jball

0

날 지점 수

이 시도 : t이에 의미

$("#guys").append("<div class='mybox'>....... 

나중에 문자열에서 일부 인용 부호를 가지고있는 당신은,하지만, 더 신중하게 조금 생각해야합니다.

+0

jquery의 차이점은 무엇입니까? Java/C/C++에서 작은 따옴표 나 큰 따옴표를 사용하는 것이 좋습니다. – singularity

+0

두 번째는 "문자열을 닫습니다. 따라서, 실제로 mybox가 해석 가능한 코드 중간에 매달려 있습니다. –