2011-01-20 143 views
0

所以我的意見的列表,看起來內部列表項類似jQuery的 - 從一個元素與另一個替換第一個列表項

... 
<li class="buried"> 
    <div> 
    <a class="show">show this comment</a> 
    </div> 
</li> 

<li> 
    <div> 
    bla blah.. 
    </div> 
</li> 
.... 

的JavaScript:

$(".buried").click(function(){ 

    $.ajax({ 
    ... 
    success: function(data){ 
     alert(data); 
     // here I want to replace the li.buried with data 
     } 
    }); 
    return false; 
}); 

我該怎麼辦這個?

我試着用$(this).parents(".buried").replace(data)和它不工作:(

回答

4

設置AJAX調用的context參數this

$(".buried").click(function(){ 

    $.ajax({ 
    url:'some/url', 
    context: this, 
    success: function(data){ 
     alert(data); 
     $(this).replaceWith(data); 
     } 
    }); 
    return false; 
}); 

由於click處理程序是在<li>,在處理程序,this將指收到該事件的<li>

我假設data返回的是另一個<li>,因爲這是唯一有效的替代品。如果您確實想要替換其內容,請執行$(this).html(data)

請注意,如果你取代<li>本身,你會失去你的click處理該項目。如果您不想失去它,您可能需要在<ul>本身上將click指定爲delegate

+0

非常感謝。我不知道代表。我通常在ajax更新後再次執行所有功能:) – Alex 2011-01-20 00:44:27

相關問題