【发布时间】:2017-11-28 05:15:14
【问题描述】:
我已经找到了这个问题,但我看不到它。此代码空间中的某处被添加到每个列表项中。我认为它在 for 循环中,因为它每次都添加相同数量的空间。
代码如下:
$(function(){
$.get('/frameworks', appendToList);
//POST request
$('form').on('submit', function(event) {
event.preventDefault();
var form = $(this);
var frameworkData = form.serialize();
$.ajax({
type: 'POST',
url: '/frameworks',
data: frameworkData
}).done(function(frameworkName) {
frameworkName = frameworkName[0].toUpperCase() + frameworkName.slice(1).toLowerCase();
appendToList([frameworkName]);
form.trigger('reset');
});
});
//Del event
function appendToList(frameworks) {
var list = [];
for(var i in frameworks) {
framework = frameworks[i];
content = '<a href="/frameworks/' +framework+'">' +framework+ '</a>' + '<a href="#" data-framework="' +framework+ '"><img src="del.png"></a>';
list.push($('<li>', { html: content }));
}
$('.frameworks-list').append(list);
console.log(list);
}
});
我错过了什么?
这是生成的 HTML:
<ul class="frameworks-list">
<li>
<a href="/frameworks/React">React</a>
<a href="#" data-framework="React"><img src="del.png"></a>
</li>
<li>
<a href="/frameworks/Express">Express</a>
<a href="#" data-framework="Express"><img src="del.png"></a>
</li>
<li>
<a href="/frameworks/Angular">Angular</a>
<a href="#" data-framework="Angular"><img src="del.png"></a>
</li>
</ul>
所以看起来 li 正在关闭。我尝试添加这一行:
list.push($('<li>', { html: content }), '</li>'); //--------THIS LINE----------
但是没有用。
我只记得当我像这样取出图像时:
content = '<a href="/frameworks/' +framework+'">' +framework+ '</a>' + '<a href="#" data-framework="' +framework+ '"><span>X</span></a>';
我明白了:
所以图片有问题。
【问题讨论】:
-
你能显示生成的 html 标记吗?
标签: jquery css express for-loop