1

これが私のhtmlとコードです:

  <div id="rptCategoryProducts">
    <ul class="productsUl">
    </ul>
   </div>

スクリプトの削除:

         $("#btnFilter").click(function () {

            $(".productsUl li").each(function () {
                this.remove();
            });

            currentPage = 0;
            InfiniteScroll(0, 1000);
        });

スクリプトの追加:

 $(".productsUl").append("<li>" + productInnerHtml + "</li>");

しかし、それは削除されません。また、Mozilla Firebug の手順を見ると、this.remove();行の後に停止することがわかりました。提案はありますか?

4

8 に答える 8

1

またはさらに簡単:

$(".productsUl li").remove();

;-)

于 2013-04-26T09:57:15.217 に答える
1

要素$(this)を参照するために使用する必要がありますli

$("#btnFilter").click(function () {
  $(".productsUl li").each(function () {
          $(this).remove();
   });

   currentPage = 0;
   InfiniteScroll(0, 1000);
});

http://jsfiddle.net/Gwbmw/

于 2013-04-26T09:58:15.903 に答える
1

を使用して jQuery オブジェクトをループすると、jQuery オブジェクトeachにラップされた各要素ではなく、要素自体が取得されます。removeメソッドを使用するには、各要素を jQuery オブジェクトでラップする必要があります。

$(".productsUl li").each(function () {
  $(this).remove();
});

ただし、要素をループする必要さえありませんremove。すべての要素を含む jQuery オブジェクトでメソッドを使用するだけです。

$(".productsUl li").remove();
于 2013-04-26T09:59:51.277 に答える
0

「$」がありません。試す:

 $(".productsUl li").each(function () {
               $(this).remove();
            });
于 2013-04-26T09:57:04.347 に答える
0

eachコールバックではthis、jquery オブジェクト参照ではなく、dom 要素参照を指します。したがって、呼び出す前にアイテムのjqueryオブジェクト参照を取得する必要がありますremove()

$(".productsUl li").each(function () {
    $(this).remove();
});

とても簡単にできます

$(".productsUl > li").remove()
于 2013-04-26T09:57:16.307 に答える
0

これを試してください:

$(this).remove();

それ以外の

this.remove();
于 2013-04-26T09:56:07.803 に答える
0

$(this)代わりにthis-が必要です

$(".productsUl li").each(function () {
        $(this).remove();
});
于 2013-04-26T09:55:56.407 に答える
0

変。わたしにはできる。このテストを見てください:

[link]http://jsfiddle.net/bwqwD/
于 2013-04-26T10:09:36.147 に答える