JQuery:。remove()无法正常工作

时间:2013-04-26 09:54:36

标签: javascript jquery asp.net html

这是我的HTML和代码:

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

删除scritp:

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

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

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

添加脚本:

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

但它没有删除,当我在Mozilla Firebug中观察步骤时,我看到它在this.remove();行后停止。 你有什么建议吗?

8 个答案:

答案 0 :(得分:1)

甚至更简单:

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

- )

答案 1 :(得分:1)

您需要使用$(this)来引用li元素

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

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

http://jsfiddle.net/Gwbmw/

答案 2 :(得分:1)

使用each循环遍历jQuery对象时,您将获取元素本身,而不是每个元素都包含在jQuery对象中。您需要将每个元素包装在jQuery对象中以使用remove方法:

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

但是,您甚至不需要循环遍历元素,只需在包含所有元素的jQuery对象上使用remove方法:

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

答案 3 :(得分:0)

您需要$(this)而不是this -

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

答案 4 :(得分:0)

你应该试试这个:

$(this).remove();

而不是

this.remove();

答案 5 :(得分:0)

缺少'$'。尝试:

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

答案 6 :(得分:0)

each回调中,this指向dom元素引用而不是jquery对象引用。因此,在调用remove()

之前,需要获取项的jquery对象引用
$(".productsUl li").each(function () {
    $(this).remove();
});

可以轻松完成

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

答案 7 :(得分:0)

奇怪。这个对我有用。看看这个测试:

[link]http://jsfiddle.net/bwqwD/