1

我正在搜索 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>

任何指向正确方向的指针将不胜感激。

亲切的问候雷切尔

4

5 回答 5

3

Use jQuery.get() instead :

$.get(url + '&' + urlExtra,function(data) {
   $('#searchResults').append('<li>' + data + '</li>');
})

#searchResults in my case is the ul. This uses .append() to add the new li to the end of the ul

于 2012-06-28T08:43:35.993 回答
2

jQuery 的load()功能 -用下载的内容替换父项的内容。在您的代码中,加载调用的父级是您的最后一个li而不是ul. 您需要的是将内容附加到父级而不是替换它的东西。所以理论上,load()不能为你做。使用类似.ajax()or.get()来获取内容,然后将其附加到您的父母ul

于 2012-06-28T08:45:13.557 回答
0

Maybe try:

$.get('foo.html', function(data) {
    $('#results').append(data);
});

HTML:

<ul id="results">
    <li>Item 1</li>
</ul>

foo.html:

<li>New item</li>

Result:

<ul id="results">
<li>Item 1</li>
<li>New item</li>
</ul>
于 2012-06-28T08:55:37.483 回答
0

不加到最后一个li,为什么不加到ul本身呢?

于 2012-06-28T08:40:21.450 回答
0

尝试将新的“li”附加到 ul:

$('#searchResults ul').append("<li>asdasdasd</li>");
于 2012-06-28T08:41:36.467 回答