2013-10-18 22 views
0

我想要一段div,每個div都可以用按鈕更新。我有按鈕工作和信息發送到jQuery中的.post數據庫。發送我想要更新的項目的價值我使用'這',所以這不是一個問題。但是因爲我有同一個類的單個div,那麼.done函數如何知道哪些更新?我仍然在學習如何做這種事情。提前致謝!當有許多相同的課程時,我如何更新div的內容?

$(".confirm-request-show").click(function(e) { 
    e.preventDefault(); 
    $.post("confirmrequest.php", 
    { 
     requestID: $(this).val(), 
     action: 'confirm' 
    }) 
    .done(function() { 
     var id = $(this).val(); 
     $('#confirm-request-div-' + id).empty().load('confirmrequestdiv.php?requestID=' + id); 
     $(this).attr("disabled", true); 
    }) 
}); 

更新:得到它的工作,我所要做的就是在done()函數之前聲明id。不知道爲什麼,也許有人可以向我解釋這個細微差別?

$(".confirm-request-show").click(function(e) { 
    e.preventDefault(); 
    var id = $(this).val(); 
    $.post("confirmrequest.php", 
    { 
     requestID: id, 
     action: 'confirm' 
    }) 
    .done(function() {   
     $('#confirm-request-div-' + id).empty().load('confirmrequestdiv.php?requestID=' + id); 
     $(this).attr("disabled", true); 
    }) 
}); 
+2

後的HTML和jsFiddle.net例如關聯。 – j08691

+0

你可以在每個人身上使用一個ID來定位一個特定的ID,另一個選擇是獲得div的數組並且遍歷它們以找到其中的一個。但我更喜歡第一種方法更高效 – Rafael

回答

0

如果.confirm-request-show按鈕嵌套在.confirmrequestdiv你可以做這樣的事情:

HTML:

<div class="confirmrequestdiv"> 
    <input type="submit" class="confirm-request-show" value="1" /> 
</div> 

JS作爲一個起點,並正在尋找具有.confirmrequestdiv類的祖先。

如果沒有嵌套在div裏面的按鈕,你會發現這樣一個共同的祖先:

HTML:

<div class="commonancestor"> 
    <div class="confirmrequestdiv"> 
    </div> 
    <input type="submit" class="confirm-request-show" value="1" /> 
</div> 

JS:

$(this).closest('.commonancestor').find('.confirmrequestdiv').empty().load("confirmrequestdiv.php?showID=" + $(this).val()); 

如果元素穿上」沒有一個方便的共同祖先(或者如果所有的confirmrequestdiv類都在一個共同的容器中,你可以採取id的方法:

HTML:

<div> 
    <div class="confirmrequestdiv" id="confirmrequestdiv-1"></div> 
    <div class="confirmrequestdiv" id="confirmrequestdiv-2"></div> 
    <div class="confirmrequestdiv" id="confirmrequestdiv-3"></div> 
    <div class="confirmrequestdiv" id="confirmrequestdiv-4"></div> 
</div> 
<div> 
    <input type="submit" class="confirm-request-show" value="1" /> 
    <input type="submit" class="confirm-request-show" value="2" /> 
    <input type="submit" class="confirm-request-show" value="3" /> 
    <input type="submit" class="confirm-request-show" value="4" /> 
</div> 

JS:

var id = $(this).val(); 
('#confirmrequestdiv-' + id).empty().load("confirmrequestdiv.php?showID=" + id); 

但要真正幫助你,我們需要看到的HTML結構。

+0

另一個快速問題 - 出於某種原因,按鈕沒有被禁用。使用此設置將屬性設置爲禁用是否可行? –

0

通常這是您想要使用ID的位置。只需給你想要更新唯一ID的div,然後在你的JavaScript中使用$('#whateverIDyouGaveTheDiv')

$(this).closest('.confirmrequestdiv').empty().load("confirmrequestdiv.php?showID=" + $(this).val()); 

這是使用已單擊按鈕:

0

當我不得不處理這個問題時,我只創建了一個與每個div元素關聯的唯一ID。例如,id =「element1」,那麼我會將ID的數字部分傳遞給javascript,就像onclick =「function(1)」一樣。但是這需要在div元素中使用onclick事件。

那麼你的jQuery裏面你可以兩者結合起來$( '#元素' + id)的......等等

相關問題