0

我正在通过 jQuery .load() 方法加载 div 元素,如下所示:

$(document).ready(function() {
    $(".module-wrapper").load("index.php?option=com_k2&view=itemlist&Itemid=974 .genericItemList");
});

通过它我得到了项目列表,比如说其中的 5 个。

<div class="module-wrapper">
    <div class="genericItemList">
        <div class="genericItemView">Item 1</div>
        <div class="genericItemView">Item 2</div>
        <div class="genericItemView">Item 3</div>
        <div class="genericItemView">Item 4</div>
        <div class="genericItemView">Item 5</div>
    </div>    
</div>

现在我想使用 jQuery .remove() 因为我只想显示前 3 个项目。上面的 HTML 只是示例,实际上每个项目都有很多 HTML 代码,所以我想使用 jQuery .remove() 而不是 CSS display:none。

我这样做:

$(window).load(function() {
    $(".module-wrapper .genericItemView:gt(2)").remove();
});

这仅适用于 Chrome,但不适用于 Firefox 或 IE,我可以在其中看到所有 5 个项目。

有什么建议么?

4

6 回答 6

2

为了确保代码只在元素加载后运行,你应该把它放在传递给load()的回调函数中:

$(document).ready(function() {
    $(".module-wrapper").load(
        "index.php?option=com_k2&view=itemlist&Itemid=974 .genericItemList",
        function() {
            $(".module-wrapper .genericItemList:gt(2)").remove();
        }
    );
});

你的类选择器也可能是错误的,我试图在上面的代码中纠正它。看起来您想要匹配.module-wrapper公开类的后代,但您的原始选择器匹配同时公开和类genericItemList的元素。module-wrappergenericItemView

于 2013-03-28T12:57:52.073 回答
1

可以使用load()方法的成功回调来编写dom操作

$(document).ready(function() {
    $(".module-wrapper").load("index.php?option=com_k2&view=itemlist&Itemid=974 .genericItemList", function(){
        $(".genericItemView:gt(2)", this).remove();
    });
});
于 2013-03-28T12:58:03.257 回答
1

更改genericItemListgenericItemView

 $(".module-wrapper .genericItemView:gt(2)").remove();
于 2013-03-28T12:59:54.943 回答
1

将您的类名 genericItemView 更改为 genericItemList。

$(".module-wrapper .genericItemList:gt(2)").remove();

看演示

于 2013-03-28T13:01:09.650 回答
1

将其更改$(".module-wrapper.genericItemView:gt(2)").remove();$(".module-wrapper .genericItemList:gt(2)").remove();

于 2013-03-28T13:01:32.700 回答
1

在 .genericItemList 之前添加空格

$(".module-wrapper .genericItemList:gt(2)").remove();
于 2013-03-28T13:02:16.553 回答