我尝试在 AJAX success:function(data){}
中处理一个HTML部分,但是由于某种原因,当我调用它时,代码无法执行。下面是我尝试的代码:
$.ajax({
url:"../new/php/posts.php",
method:"POST",
data:{limit:limit, start:start},
cache:false,
success:function(data)
{
//$('#activitystream').append(data);
var data_parse = JSON.parse(data);
for (var i in data_parse){
var divData = '<a id="default-like-'+data_parse[i].ID+'" href="#/" class="post__action post__action--reaction reaction reaction__toggle reaction-toggle--'+data_parse[i].ID+' reaction-emoticon-0 js-reaction-toggle" style="display: none;">\n'+
'<span>Like</span>\n'+
'</a>';
$('#activitystream').append(divData);
}
if(data == '') {
//Do nothing
action = 'active';
}else {
$('#activitystream-loading').css("display", "block");
action = 'inactive';
console.log(action);
console.log(data);
var els1 = document.querySelectorAll(".post__action--reaction");
for (var x = 0; x < els.length; x++){
alert("Hey there")
els1[x].style.display = 'block';
}
}
}
});
所以,我也尝试了两种方法。首先,我尝试执行 AJAX 的complete:function(){}
内部的代码,其次,我尝试添加这个window.onload = function(){}
内部的代码,但仍然没有任何React。甚至在控制台中没有任何错误,它只是什么都没有显示。你知道我如何处理生成的html部分吗?提前感谢!
1条答案
按热度按时间fiei3ece1#
代码没有按预期执行的一个可能原因是在for循环中使用了错误的变量名。
您使用的是变量“els”而不是“els1”。2这可能会导致循环根本不执行,从而导致没有输出。
尝试更改for循环中的变量名,使其与代码前面使用的变量名匹配,如下所示:
这样应该可以修复该问题,并使代码能够正确执行。