0

我希望有一部分 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);
    })
});
4

3 回答 3

0

通常这是您要使用 ID 的地方。只需给要更新的 div 一个唯一 ID,然后$('#whateverIDyouGaveTheDiv')在您的 JavaScript 中使用。

于 2013-10-18T18:51:58.370 回答
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 结构。

于 2013-10-18T18:53:43.770 回答
0

当我不得不解决这个问题时,我只是创建了一个与每个 div 元素关联的唯一 ID。例如,id="element1" 然后我会将 ID 的数字部分传递给 javascript,例如 onclick="function(1)"。但这需要在 div 元素内使用 onclick 事件。

然后在您的 jquery 中,您可以将两者关联在一起 $('#element' + id)...... 等等。

于 2013-10-18T19:00:59.413 回答