2013-03-04 95 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> 

我無法控制表的設置方式。不過,我所知道的是鏈接的ID。我的目標是遍歷到<table>元素並將其從DOM中刪除。我也試過closest。我在Firefox和IE9中得到的錯誤是remove不是一個函數。註釋掉的塊可以工作,但不是很有活力。但是,在Chrome中,它完美無瑕。感謝您的任何幫助。jQuery .parents([selector])不適用於IE9和Firefox

回答

7

它與您試圖爲本地JS元素上使用.remove()一點兒也不工作,而不是一個jQuery元素:

這不是:

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

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

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

[0]使用或get(0)獲取從陣列狀jQuery對象,這一點兒也不具有.remove()方法天然JS元件。

作爲一個旁註,使用closest()會更有效率,並將與上述示例一起使用。

+0

非常感謝,我在過去的一個小時裏一直在撓頭。 – Monir 2013-03-04 20:39:18

+0

@Monir - 不客氣。這件事很容易混淆,我們都去過。 – adeneo 2013-03-04 20:42:06

+0

那麼現在它在Chome和Firefox中工作,但不是IE9。沒有錯誤消息打印什麼如此。 – Monir 2013-03-04 20:42:20

相關問題