如何删除一个具有空类属性的表行?

时间:2013-11-27 17:51:23

标签: javascript firefox html-table greasemonkey

Greasemonkey脚本是否可以删除一个具有空类(<tr class="" ...>)的行?

问题是在<tbody>标记内部有两行具有空类。 要删除的行是第一行。

<table id="sort_table" class="tablesorter">
<thead>
    <tr>
        <th class="blacktext timesroman_italic">This</th>
        <th class="blacktext timesroman_italic">is a</th>
        <th class="blacktext timesroman_italic">header</th>
        <th class="blacktext timesroman_italic">row</th>
    </tr>
</thead>
<tbody>
    <!-- I WOULD LIKE TO DELETE FROM HERE -->
    <tr class="" valign="middle">
        <td class="bluetext timesroman align_middle">First</td>
        <td class="bluetext timesroman align_middle">blank</td>
        <td class="bluetext timesroman align_middle">class</td>
        <td class="bluetext timesroman align_middle">row</td>
    </tr>
    <!-- TO HERE -->

    <!-- BUT NOT FROM HERE -->
    <tr class="" valign="middle">
        <td class="bluetext timesroman align_middle">second</td>
        <td class="bluetext timesroman align_middle">blank</td>
        <td class="bluetext timesroman align_middle">class</td>
        <td class="bluetext timesroman align_middle">row</td>
    </tr>
    <tr class="someclass" valign="middle">
        <td class="bluetext timesroman align_middle">I gots</td>
        <td class="bluetext timesroman align_middle">me</td>
        <td class="bluetext timesroman align_middle">some</td>
        <td class="bluetext timesroman align_middle">class</td>
    </tr>
    <tr valign="middle">
        <td class="bluetext timesroman align_middle">no</td>
        <td class="bluetext timesroman align_middle">class</td>
        <td class="bluetext timesroman align_middle">attribute</td>
        <td class="bluetext timesroman align_middle">row</td>
    </tr>
    <!-- TO HERE -->
</tbody>
</table>


我想删除第一个“空白类”行。像这样:

deletion scheme


这是我提出的伪代码,但我如何在脚本中执行此操作? :

  • 转到id ==“sort_table”
  • 的表格
  • 忽略“thead”并转到“tbody”,可以是trCount&gt; 1 //“thead”有一个“tr”所以它应该忽略一个“tr”跳到“thead”;
  • 在“tbody”上,而trCountf&lt; 2,删除trCountf行。 // trCountf&lt; 2因为我们应该忽略“tbody”中的第二行

1 个答案:

答案 0 :(得分:0)

使用jQuery,您可以使用一行代码执行此操作:

$('#sort_table tbody tr:not([class!=""]):first').remove ();

请参阅"Select elements without any class"

完整的Greasemonkey脚本将是这样的:

// ==UserScript==
// @name     _Remove the first body row that ain't got no class
// @include  http://YOUR_SERVER.COM/YOUR_PATH/*
// @require  http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
// @grant    GM_addStyle
// ==/UserScript==
/*- The @grant directive is needed to work around a design change
    introduced in GM 1.0.   It restores the sandbox.
*/

$('#sort_table tbody tr:not([class!=""]):first').remove ();


see the code at jsFiddle.