我正在搜索amd我有以下代码行:
$('#searchResults').add($('li:last').load(url + '&' + urlExtra));
这会添加10个带内容的li标签,而不是添加到ul中,它将最后一个li嵌入到已加载的列表中。试图澄清我想要这个结果:
<ul>
<li>already in list</li>
<li>already in list</li>
<li>already in list</li>
<li>already in list</li>
<li>new li from load</li>
<li>new li from load</li>
</ul>
但是我得到了这个:
<ul>
<li>already in list</li>
<li>already in list</li>
<li>already in list</li>
<li>already in list
<li>new li from load</li>
<li>new li from load</li>
</li>
</ul>
任何指向正确方向的人都会非常感激。
亲切的问候 拉结
答案 0 :(得分:3)
改为使用jQuery.get()
:
$.get(url + '&' + urlExtra,function(data) {
$('#searchResults').append('<li>' + data + '</li>');
})
在我的案例中,{p> #searchResults
是ul
。这会使用.append()
将新li
添加到ul
的末尾
答案 1 :(得分:2)
jQuery的load()
函数 - 用已下载的内容替换父级的内容。在您的代码中,加载调用的父级是您的最后li
而不是ul
。您需要的是将内容附加到父级而不是替换它的内容。所以从理论上讲,load()
不能为你做到。使用.ajax()
或.get()
之类的内容获取内容,然后将其附加到您的父ul
答案 2 :(得分:0)
为什么不将它添加到ul本身而不是添加到最后一个li?
答案 3 :(得分:0)
尝试将新的'li'附加到ul:
$('#searchResults ul').append("<li>asdasdasd</li>");
答案 4 :(得分:0)
也许试试:
$.get('foo.html', function(data) {
$('#results').append(data);
});
<强> HTML:强>
<ul id="results">
<li>Item 1</li>
</ul>
<强> foo.html:强>
<li>New item</li>
<强>结果:强>
<ul id="results">
<li>Item 1</li>
<li>New item</li>
</ul>