Jquery用事件删除TR,并在它上面立即TR

时间:2014-03-07 23:17:49

标签: javascript jquery html

我有一个动态表日历,当那天没有任何事件时,会显示一行“今天没有事件”。

我正在尝试删除此特定内容的TR 包含紧接在其上方的TR,但是当特定TR显示“No Events Today”时。< / p>

这是我到目前为止提出的jQuery的一半,因为它删除了内容,但我也需要你帮助删除日期。

$("tr td:contains('No events today')").parent().remove();

我的Demo

这是表格的例子:

<table>
    <tr>
        <td class="CalendarEventDate" colspan="3">Saturday, March 1 2014</td>
    </tr>
    <tr>
        <td class="CalendarNoEvent" colspan="3">No events today</td>
    </tr>
    <tr>
        <td class="CalendarEventDate" colspan="3">Sunday, March 2 2014</td>
    </tr>
    <tr>
        <td class="CalendarEventTime">All Day</td>
        <td class="CalendarEventName"><a href="http://www.example.com">Event Name Here</a></td>
        <td class="CalendarEventLocation">Remote</td>
    </tr>
</table>

3 个答案:

答案 0 :(得分:0)

你想删除tr-element的前一个兄弟,它也用“今天没有事件”封装了td元素。

jQuery提供.prev()函数。

像这样的工作:

$("tr td:contains('No events today')").parent().prev().remove();

答案 1 :(得分:0)

$("tr td:contains('No events today')").parent().hide().prev('tr').hide()

答案 2 :(得分:0)

我认为您正在寻找jQuery.prev。请参阅以下示例。

//Find the first td.
var tr = $("tr td:contains('No events today')").parent();
//Find the previous element and remove it from the DOM.
tr.prev().remove();//Could be written tr.prev(".CalendarEventDate").remove();
//No remove the first td from the DOM.
tr.remove();