ajax响应后,HTML结构受到干扰
HTML structure disturbed after ajax response
我正在使用django 1.5, python 2.7和jquery 1.9。虽然这个问题主要与javascript有关。
我的html代码如下。这形成了一个对象列表,如:
<div class="item cls">
<div class="item cls">
<div class="item cls">
<div class="item cls">
<div class="item cls">
<div class="item cls">
<div class="item cls">
<div class="item cls">
当我通过ajax获取更多数据时,形成的结构是这样的:
<div class="item cls">
<div class="item cls">
<div class="item cls">
<div class="item cls">
<div class="item cls"> #new div
<div class="item cls"> #new div
<div class="item cls"> #new div
<div class="item cls"> #new div
HTML: {% for obj in objs %}
<div class="item cls">
<div class="alpha"><a href="#"><img src="{{ STATIC_URL }}img/107.png" /></a></div>
<div class="span6" id="abc_{{ obj.id }}">
<h2 class="Title"><a href="#">{{ obj.t }}</a></h2>
<p>{{ obj.a }}</p>
<div class="tags">
<a href="#"><i class="icon"></i> Intel</a>
<a href="#"><i class="icon"></i> Architecture</a>
</div>
<a href="#" class="btn"><i class="icon"></i> Upload </a>
<a href="#" class="btn"><i class="icon"></i> Download </a>
</div>
</div>
{% endfor %}
AJAX成功:for(var i = 0; i < response.length; i++){
var divs = document.getElementsByClassName('item');
divs[parseInt(divs.length)-1].innerHTML = '<div class="item cls"><div class="alpha"><a href="#"><img src="{{ STATIC_URL }}img/107.png" /></a></div><div class="span6" id="abc_' + response[i].id + '"><h2 class="Title"><a href="#">' + response[i].t + '</a></h2><p>' + response[i].a + '</p><div class="tags"><a href="#"><i class="icon"></i> Intel</a><a href="#"><i class="icon"></i> Architecture</a></div><a href="#" class="btn"><i class="icon"></i> Upload </a><a href="#" class="btn"><i class="icon"></i> Download </a></div></div>'
在我在innerHTML中附加代码的行中有一些问题。我不明白那是什么。请帮助! !
我通过在django for loop模板外添加一个div来解决这个问题
<div class="itemContainer">
#previous HTML code
</div>
现在在ajax成功函数中我写了
for(var i = 0; i < response.length; i++){
var divs = $('.itemContainer')[0].innerHTML;
$('.itemContainer')[0].innerHTML = divs.concat('//structure to concatenate');
}
我对这种方法不满意,但对我来说仍然有效。
将ajax响应"插入到"最后一个div..这就是为什么你的结构是软管。由于您正在使用jQuery,因此请利用"。insertAfter"方法。例如:
var div = jQuery('<div/>', {
html: '<innerhtmlhere>'
});
div.insertAfter($('.item').last());
试一试,告诉我你的结果。
或者更快的实现:(如果你的响应文本是干净的)
$("<responsetexthere>").insertAfter($('.item').last());
文档:http://api.jquery.com/jQuery/jQuery2
相关文章:
- 多个单选按钮组相互干扰
- 更改JSON对象的结构
- 角度控制器结构
- 从键值结构中获取数据,并将其与AngularJS中ng重复的值进行比较
- 使用递归属性迭代保留属性结构
- 如何将我的json结构转换为C3.js所需的列结构
- 嵌套对象结构
- Redux应用程序结构-在哪里放置服务/业务逻辑
- 用于视频类型的MongoDB结构's
- javascript和php中的pancard结构验证
- 如何在砖石结构中订购DOM
- 如何解析结构不良的 html 代码
- 访问嵌套函数结构中的JavaScript父函数变量
- 为什么我们在ES2015中需要一个新的for循环结构,而我们已经有了for、forEach
- 从json对象聚集数据并创建层次结构
- 在我的目录结构中,将单元测试助手源文件放在哪里
- 当知道同一hiearch中至少有一个元素时,遍历到元素.结构使用jquery
- Html5-使用SVG路径绘制的组织层次结构在左手边被剪裁
- AngularJS会干扰JSON结构
- ajax响应后,HTML结构受到干扰