使用ajax无法在我的成功函数中获取元素的值?

时间:2018-01-07 20:36:22

标签: javascript jquery ajax jsp java-ee

所以我遇到了一个问题,我不知道如何解决它,我花了几个小时试图找到一种方法来获得我的元素价值。

这是我的代码(jsp):

<div class="aimerSection">
     <div class="aime">
     <form>
     <input type="hidden" class="adore1" name="aime" value="${post.id}">
     <input type="button" class="adore2" value="J'aime">
     </form>
     </div>
     <c:if test="${ post.adore == 0 || post.adore == 1 }">
     <div class="nbreAimes"><p><span class="nbrAdore">${ post.adore }</span> personne aime ça</p></div>
     </c:if>

     <c:if test="${ post.adore != 0 && post.adore != 1 }">
     <div class="nbreAimes"><p><span class="nbrAdore">${ post.adore }</span> personnes aiment ça</p></div>
     </c:if>

</div>

我想要实现的是当我点击我的按钮(输入类型按钮)时,使用'nbreAimes'获取div中'p'的值,这样就是我的jquery文件:

$(document).ready(function(){
$(".adore2").click(function(){
    var aime = $(this).parent().find(".adore1").val()
    var value = $(this).parent().parent().siblings().find(".nbrAdore").text()
    alert(value)

    console.log("value : "+$(this).parent().parent().siblings().find("p").text());
    $.ajax({
        type:"POST",
        data: {aime:aime},
        url:"acceuilServlet",
        success:function(result){

            console.log("in functions : "+$(this).parent().parent().siblings().find("p").text());
        }
    })

})
})

但问题是我正确地获得了值,但是在ajax(success:function)的功能中,我复制了完全相同的代码而我什么都没得到。

在我的控制台中,我看到了:

value : 1 personne aime ça 
in functions : 

我什么都没得到。

希望我能找到一些帮助。 谢谢。

1 个答案:

答案 0 :(得分:1)

AJAX中的$(this)与外部的不同。尝试将您的值保存在AJAX调用之外的另一个变量中,以便以后在AJAX中使用。

$(document).ready(function(){
$(".adore2").click(function(){
    var aime = $(this).parent().find(".adore1").val()
    var value = $(this).parent().parent().siblings().find(".nbrAdore").text()
    alert(value)

    console.log("value : "+$(this).parent().parent().siblings().find("p").text());

    var pText = $(this).parent().parent().siblings().find("p").text()

    $.ajax({
        type:"POST",
        data: {aime:aime},
        url:"acceuilServlet",
        success:function(result){

            console.log("in functions : "+pText);
        }
    })

})
})