2012-02-07 2 views
1

나는 잠시 동안 여기를 수색 했으므로 간단한 문제에 대한 구체적인 대답을 찾을 수 없다.Jquery AJAX methods

서버에 존재하거나 존재하지 않을 수도있는 파일에 대한 링크가 포함 된 일부 생성 된 HTML이 있습니다. 생성기는 파일이 존재하는지 여부를 모릅니다. 따라서 파일이 있다고 가정합니다.

파일이 존재하지 않으면 깨진 href와 hide() 링크를 확인하기 위해 JQ AJAX 메소드를 사용하려고하는데, 충분히 간단하다고 생각합니다.

<tr> 
    <td>24</td> 
    <td>201106</td> 
    <td>PRODID</td> 
    <td>ABC</td> 
    <td>98</td> 
    <td>40.95</td> 
    <td>4013.1</td> 
    <td>15.56365</td> 
    <td>2487.8623</td> 
    <td>61.99</td> 
</tr> 
<tr> 
    <td colspan="9" style="border-top:#047D66 solid 1px; background-color:#e0e0e0; border-bottom:#047D66 solid 1px"><br></td> 
    <td><a href="http://dashboards/wrappedstuff_uk/files/PRODID.pdf" id="checklnk">PDF</a></td> 
</tr> 

내 JQuery와 스크립트

$.ajax({ 
    url: $('#checklnk').attr('href'), 
    type: 'text', 
    method: 'HEAD', 
    error: function() { 
     $(this).hide(); 
    }, 
    success: function(){ 
     $(this).css('background-image',url('/dashboards/cms/intra/images/icon-link-pdf.png')); 
    } 
}); 

링크가 숨겨져 내가 문제가 $(this) 내가 기대하는 DOM 요소 아니라고 생각되는 것은 아니다.

누구나 올바른 방향으로 나를 가리키고 있습니다.

+0

언제이 코드를 실행하고 있습니까? DOM에 대한 루프가 준비 되었습니까? 사용자가 요소를 클릭하면? –

+0

더 많은 태그가 있습니까? 만약 당신이 그것에 대한 수업을 사용해야합니다. –

+0

테이블은 당신의'checklink'와 어떤 연관성이 있습니까? 여기에 더 많은 설명이 필요할 것입니다. –

답변

0

맞았을 때 $(this)href을 나타내지 않으므로 요소 ID를 사용해야합니다. 이

$("#checklnk").hide(); 

또는

확인 같은 뭔가가 하나의 페이지에있는 모든 앵커 태그는 희망이 도움이

$("a").each(function(i){ 
     $.ajax({ 
      url: $(this).attr('href'), 
      type: 'text', 
      method: 'HEAD', 
      error: function() { 
       $(this).hide(); 
      }, 
      success: function(){ 
       $(this).css('background-image',url('/dashboards/cms/intra/images/icon-link-pdf.png')); 
      } 
     });   
    }); 

촬영.

+0

이제 알겠습니다. 모두에게 감사드립니다. –

0
$.ajax({ 
    url:$('#checklnk').attr('href'), 
    type: 'text', 
    method: 'HEAD', 
    error: function() { 
    $("#checklnk").hide(); 
    }, 
    success: function(){ 
    $("#checklnk").css('background-image',url('/dashboards/cms/intra/images/icon-link-pdf.png')); 
    } 

성공 및 오류 비동기 메소드. 따라서 셀렉터를 다시 사용해야합니다.

0

AJAX 전화를하기 전에 $(this)을 변수에 저장하는 것이 좋습니다. 따라서 귀하는 지정된 링크에 액세스 할 수 있으며 귀하는 .hide(), .show() 수 있습니다. 더 많은 html 요소가 HTML 페이지에 있으면 id 대신 클래스를 사용해야합니다! 짧은 예 :

var myAnchor=$(this); 

$.ajax({ 
    // run your code here. 
});