删除没有id或类的td

时间:2015-02-20 10:50:04

标签: javascript jquery

我有一个简单的问题,但不能为我的生活弄明白......

我想从td中删除整个tr(其子项为:div,类为“sch”,a的ID为“hlp”但是,td本身没有id,类或任何其他定义特征本身。

tr

的代码

<tr>
  <td nowrap="">
    <div class="sch">
      <a class="btn" href="?ae=Dialog&amp;t=AddressBook&amp;ctx=1" title="Address Book">
        <img src="http://placehold.it/35x35&text=1" alt="">Address Book</a>
    </div>
  </td>

  <td nowrap="">
    <div class="sch">
      <a class="btn" onclick="return onClkOp();" href="?ae=Options&amp;t=Messaging" title="Options">
        <img src="http://placehold.it/35x35&text=2" alt="">Options</a>
    </div>
  </td>

  <!-- ***** To be removed ***** -->
  <td nowrap="">
    <div class="sch">
      <a id="hlp" class="btn" href="#" title="Help">
        <img src="https://mail.kgs.org.uk/owa/8.3.298.1/themes/base/help.gif" alt="Help">
      </a>
    </div>
  </td>
  <!-- ********** -->

  <td nowrap="">
    <div class="sch">
      <a id="lo" class="btn" href="#" title="Log Off">
        <img class="noSrc" src="http://placehold.it/35x35&text=4" alt="">Log Off</a>
    </div>
  </td>
</tr>

我试过了:
1

$(document).ready(function() {
   $("td").has(".sch").remove(); //This removes the entire row, which I don't want
});

2

$(document).ready(function() {
   $("td").has(".sch").has("#hlp").remove(); //This doesn't work
});

第3

$(document).ready(function() {
   $(".sch").prev("td").remove();
   $("#hlp").prev(".sch").remove();   //Doesn't work...
});

注意:我无法直接在我的代码中执行此操作,或者将id添加到有问题的td以及为什么它是表格的原因是我正在编辑我的网络邮件(OWA)并且我无法在物理上更改代码:我使用浏览器扩展来添加Javascript和CSS,因此为什么它必须是JS或jQuery(如果有办法可以做甚至CSS。)

3 个答案:

答案 0 :(得分:2)

您可以在has选择器中使用anchor元素的id来仅定位所需的td元素:

$('td:has(div.sch a#hlp)').remove();

<强> Working Demo

答案 1 :(得分:1)

您想要删除的TD是第三个。因此,如果页面结构没有更改,您可以使用:nth-child选择器。

$(tableSelector + ' td:nth-child(3)').remove();

(您不希望从页面中的所有表中删除第三列。)

或者您可以向后工作,并定位a#hlp。然后使用.closest()查找封闭的td,并将其删除。

答案 2 :(得分:0)

试试这个:

$(".sch").find('#hlp').closest('td').remove();

或作为ID是唯一的,因此您可以直接执行此操作:

$('#hlp').closest('td').remove();

&#13;
&#13;
$('.sch').find('#hlp').closest('td').remove();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
  <td nowrap="">
    <div class="sch">
      <a class="btn" href="?ae=Dialog&amp;t=AddressBook&amp;ctx=1" title="Address Book">
        <img src="http://placehold.it/35x35&text=1" alt="">Address Book</a>
    </div>
  </td>

  <td nowrap="">
    <div class="sch">
      <a class="btn" onclick="return onClkOp();" href="?ae=Options&amp;t=Messaging" title="Options">
        <img src="http://placehold.it/35x35&text=2" alt="">Options</a>
    </div>
  </td>

  <!-- ***** To be removed ***** -->
  <td nowrap="">
    <div class="sch">
      <a id="hlp" class="btn" href="#" title="Help">remove
        <img src="https://mail.kgs.org.uk/owa/8.3.298.1/themes/base/help.gif" alt="Help">
      </a>
    </div>
  </td>
  <!-- ********** -->

  <td nowrap="">
    <div class="sch">
      <a id="lo" class="btn" href="#" title="Log Off">
        <img class="noSrc" src="http://placehold.it/35x35&text=4" alt="">Log Off</a>
    </div>
  </td>
</tr>
</table>
&#13;
&#13;
&#13;