所以我遇到了一个问题,我不知道如何解决它,我花了几个小时试图找到一种方法来获得我的元素价值。
这是我的代码(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 :
我什么都没得到。
希望我能找到一些帮助。 谢谢。
答案 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);
}
})
})
})