2013-03-04 2 views
1
<html> 
<body> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
    <script type="application/javascript"> 

     $(document).ready(function() { 
      $("#evaluation_complete").parents("table")[0].remove(); //doesn't work 

      //this works 
      //var EvalComplete = document.getElementById("evaluation_complete"); 
      //EvalComplete.parentNode.parentNode.parentNode.parentNode.parentNode.removeChild(
       //EvalComplete.parentNode.parentNode.parentNode.parentNode); 
     }); 

    </script> 
    <p>Testing little code</p> 
    <table> 
     <tbody> 
      <tr> 
       <td class="button-left">&nbsp;</td> 
       <td class="button-middle" nowrap="true"><div 
         style="margin: 0px 0px 1px;"> 
         <a class="button-text" name="evaluation_complete" 
          id="evaluation_complete" href="#">Evaluation Complete</a> 
        </div></td> 
       <td class="button-right">&nbsp;</td> 
      </tr> 
     </tbody> 
    </table> 
</body> 
</html> 

У меня нет контроля над тем, как настроена таблица. Однако все, что я знаю, является идентификатором ссылки. Моя цель - перейти к элементу <table> и удалить его из DOM. Я также попробовал это с closest. Ошибка, которую я получаю в Firefox и IE9, заключается в том, что remove не является функцией. Закомментированный блок работает, но не очень динамичен. Однако в Chrome он работает безупречно. Спасибо за любую помощь.jQuery .parents ([селектор]) не работает с IE9 и Firefox

ответ

7

Это does'nt работа, как вы пытаетесь использовать .remove() на собственный элемент JS, не JQuery элемент:

Это не так:

$("#evaluation_complete").parents("table")[0].remove(); 

но

$("#evaluation_complete").parents("table").eq(0).remove(); 

или

$("#evaluation_complete").parents("table").first().remove(); 

т.д.

использования [0] или get(0) получает родную JS элемент из массива, как JQuery объекта, который does'nt есть метод .remove().

В качестве опоры, используя closest(), будет более эффективным и будет работать с приведенными выше примерами.

+0

СПАСИБО ВАС так много, я почесывал голову в течение последнего часа. – Monir

+0

@Monir - Добро пожаловать. Легко путать с этим, мы все были там. – adeneo

+0

Ну, теперь он работает в Chome и Firefox, но не в IE9. Сообщение об ошибке не печатается. – Monir