1

我是 JQuery 的新手,可能缺少显而易见的东西,但是如何使用包含选择器过滤表,但让它使用 OR 运算符查找多个字符串。换句话说,我希望隐藏包含“红色”或“黄色”的行。

到目前为止,我有这个通过隐藏除给定日期之外的所有行来工作:

$(function()
{
    $('div#WebPartWPQ5 table.ms-summarycustombody tr:not(:contains("10/27/2009"))')
        .hide();
});

作为额外的挑战,我真正想做的是编写一个隐藏脚本来计算日期范围,然后删除包含不属于该范围的日期的表行。

先感谢您。

约翰

4

2 回答 2

1

用逗号分隔不同的选择器字符串。

$('table tr.red, table tr.yellow').hide()
于 2009-10-22T17:29:17.473 回答
0

您可以控制页面中的 html 吗?

如果是这样,请考虑将类“日期”(或“颜色”)添加到每行的适当 td 元素。然后 - 而不是使用 :contains - 这很可能会受到跨浏览器兼容性问题的影响,而是遍历表行,访问$('tr td.date').val()和执行您需要的任何测试。

此外,我建议使用 date.js ( http://www.datejs.com/ ) 来简化日期处理。

var datestart = Date();
var dateend = Date();

$('div#WebPartWPQ5 table.ms-summarycustombody tr td.date').each(function(){
    var date = Date.parse( $(this).val() );
    if (date.between(datestart, dateend === true)) {
        $(this).parent().hide(); //your logic here
    }
});

还有另一个使用 .filter() 方法的示例(请参阅http://docs.jquery.com/Traversing/filter#fn)。

var datestart = Date();
var dateend = Date();

$('div#WebPartWPQ5 table.ms-summarycustombody tr').filter(function(){
    var date = Date.parse( $('td.date', this).val() );
    return date.between(datestart, dateend) === true;
}).hide(); //your logic here
于 2009-10-25T01:18:22.380 回答