我希望有一部分div,每个div都可以用按钮更新。我有按钮工作和信息发送到数据库与jquery中的.post。发送我想要更新的项目的值我使用'this'所以这不是问题。但由于我有同一类的个别div,.done函数如何知道哪些更新?我还在学习如何做这种事情。提前谢谢!
$(".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);
})
});
答案 0 :(得分:0)
通常这是您要使用ID的地方。只需为要更新唯一ID的div提供,然后在JavaScript中使用$('#whateverIDyouGaveTheDiv')
。
答案 1 :(得分:0)
如果.confirm-request-show
按钮嵌套在.confirmrequestdiv
内,您可以执行以下操作:
HTML:
<div class="confirmrequestdiv">
<input type="submit" class="confirm-request-show" value="1" />
</div>
JS:
$(this).closest('.confirmrequestdiv').empty().load( "confirmrequestdiv.php?showID=" + $(this).val() );
这是使用已单击的按钮作为起点,并且正在寻找具有.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结构。
答案 2 :(得分:0)
当我不得不解决这个问题时,我只创建了一个与每个div元素相关联的唯一ID。例如,id =“element1”然后我会将ID的数字部分传递给javascript,就像onclick =“function(1)”一样。但这需要在div元素中使用onclick事件。
然后在你的jquery中你可以将两者联系起来$('#element'+ id)......等等。