我想在multiples id上运行相同的js ajax函数,这样我就可以从我的数据库中返回特定的信息。 在这里它确实运行了“id=”test“,但是它将它们返回到所有的test中。我如何使它们返回到它自己的test中
“ID”
HTML
<div>
<p class="postbutton" id="test_1" > </p> \\supposed to return 1, but it returns 3//
<p class="postbutton" id="test_2" > </p> \\supposed to return 2, but it returns 3//
<p class="postbutton" id="test_3" > </p> \\supposed to return 3, but it returns 3//
</div>
我的脚本函数
$(".postbutton").each(function () {
x = $(this).prop('id').replace(/[^\d.]/g, '') // converting it to a set of ID to be passed to my controller
$.ajax({
/* the route pointing to the post function */
url: '/postajax',
type: 'POST',
/* send the csrf-token and the input to the controller, Laravel stuff */
data: {_token: CSRF_TOKEN, message: x},
dataType: 'JSON',
/* remind that 'data' is the response of the AjaxController */
success: function (data)
{
$(" p[id^='test']").html(data.msg);
}
});
});
使用$(this).html()
,否则,对于每个ajax调用,将调用$(“p[id^='test']”)。html(data.msg)
,甚至是最后一个ajax调用。 所以最后一个呼叫有3作为应答。 因此它更新了两个第一个ajax调用。
$(".postbutton").each(function () {
x = $(this).prop('id').replace(/[^\d.]/g, '') // converting it to a set of ID to be passed to my controller
$.ajax({
/* the route pointing to the post function */
url: '/postajax',
type: 'POST',
/* send the csrf-token and the input to the controller, Laravel stuff */
data: {_token: CSRF_TOKEN, message: x},
dataType: 'JSON',
/* remind that 'data' is the response of the AjaxController */
success: function (data)
{
$(this).html(data.msg);
}
});
});
因为ID是属性,在您的情况下不会更改-尝试用.attr()
替换.prop
以获得ID的值。
此外,匹配您内部的成功函数将返回所有可能的匹配-在本例中为3
另外,如果您在成功函数中使用已经创建的ID来匹配元素(如
$(`#test_${x}`).html(data.msg);
首先将您的所有id存储在数组中。 在ajax函数中传递这个数组之后。 像这样:-
var id_list=[];
$(".postbutton").each(function () {
x = $(this).prop('id').replace(/[^\d.]/g, '') // converting it to a set of ID to be passed to my controller
id_list.push(x);
});
$.ajax({
/* the route pointing to the post function */
url: '/postajax',
type: 'POST',
/* send the csrf-token and the input to the controller, Laravel stuff */
data: {_token: CSRF_TOKEN, message: id_list},
dataType: 'JSON',
/* remind that 'data' is the response of the AjaxController */
success: function (data)
{
$(" p[id^='test']").html(data.msg);
}
});