2013-03-28 3 views
0

я загружаю Div элемент с помощью JQuery .load() метод как это:.remove() не работает в IE и Firefox

$(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: none.

Я делаю это так:

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

Это работает только Chrome, но не в Firefox или IE, где я могу видеть все 5 пунктов.

Любые предложения?

+0

может у создать ссылку PLS – PSR

+0

Что это вид или список? Селектор выглядит неправильно более чем одним способом. – epascarello

+1

Исправить имя класса $ (". Module-wrapper .genericItemList: gt (2)"). Remove(); – Dineshkani

ответ

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, но ваш исходный селектор соответствует элементам, которые вместо этого выставляют классыи еще.

+0

Я немного смутился о селекторах, я обновил свой вопрос с правильными значениями. И ваше предложение поместить код в функцию обратного вызова! Спасибо. Так что это код: '$ (document) .ready (function() { $ (". Module-wrapper "). Load ( " index.php? Option = com_k2 & view = itemlist & Itemid = 974 .genericItemList ", функция() {. $ ("модуль-обертка .genericItemView: GT (2)") удалить();} ); }); ' – weezle

1

Вы можете использовать успех обратного вызова метода load() писать Dóm манипуляции

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

Да, это было решение, как уже предложил Фредерик Хамиди. – weezle

1

изменение genericItemList в genericItemView

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

Измените имя класса genericItemView к genericItemList.

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

See Demo

+0

Я немного смутился с селекторами, обновил свой вопрос с правильным кодом – weezle

1

Изменить это $(".module-wrapper.genericItemView:gt(2)").remove(); к $(".module-wrapper .genericItemList:gt(2)").remove();

+0

Я немного смутился с селекторами, обновил свой вопрос с помощью правильного кода. – weezle

1

добавить пробел перед .genericItemList

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

Я немного смутился с селекторами, обновил свой вопрос с помощью правильного кода. – weezle

Смежные вопросы