3

如果条件为真但似乎无法使其正常工作,我正在尝试将一个类应用于子元素的父元素。简而言之,我想检查一个表格中是否有数字“0”的单元格并隐藏其父行。

我已经创建了我所做的基本 jsfiddle:http: //jsfiddle.net/immbudden/YbZPE/3/

还有我放在一起的jquery片段:

if ($('#the_table>table>td:contains("0")').length === 1) {
    $(this).parent("tr").addClass("hidden");
}

我仍在学习 jQuery 和 javascript,这可能是小事,但我似乎无法理解它!

任何帮助将不胜感激,在此先感谢!

4

4 回答 4

4
$('td', '#the_table > table').each(function() {
    if ($(this).text() === '0') {
        $(this).parents("tr").addClass("hidden");
    }
});

小提琴

于 2012-04-27T03:21:23.397 回答
1

使用浏览器的开发者工具!或获取 Firebug

加载该页面后,在 javscript 控制台中尝试以下操作:

$('#the_table>table>td:contains("0")')

如果那给你

[ ]

那么它没有找到任何元素。然后你可以尝试分解它,例如,看看这是否有效:

$('#the_table>table>td')

并继续取出并添加该表达式的某些部分,直到它产生truefalse根据您的需要。

于 2012-04-27T03:14:27.160 回答
1

你可以这样做,

$('#the_table table td').filter( function (index) {
    return $(this).text() == '0';
}).parent("tr").addClass("hidden");

http://jsfiddle.net/YbZPE/5/

于 2012-04-27T03:17:48.673 回答
1

首先,如果您想第一次使用 eq(0),则必须先获取单元格:

$cell = jQuery('#the_table tr td:eq(0)');

那么你必须把类放在父行上:

$cell.parent("tr").addClass("hidden");

下面的代码将做到这一点。

jQuery('#the_table tr td:eq(0)').parent("tr").addClass("hidden");
于 2012-04-27T03:21:31.417 回答