在jquery中隐藏父行的空输入

时间:2011-08-18 08:05:31

标签: javascript jquery

我有以下HTML:

<table>
   <tr class="row">
        <td class="field">
            <input type="text" />
        </td>
        <td class="field">
            <input type="text" />
        </td>
        <td class="field">
            <input type="text" />
        </td>
   </tr>
   <tr>
   ...
   ...
   </tr>
</table>

我希望能够使用<tr>隐藏class="row",但只有在页面加载时<td>class="field"的输入为空时才会隐藏。< / p>

我试过这个,但它不起作用:

$('td.field:text[value=""]').parents('tr.row').hide();

然而,出于某种原因,这可以工作:

$('td.field).parents('tr.row').hide();

(即:它隐藏了class="row"

的所有行

此外,以下内容有效:

$('td.field:text[value=""]').val('test');

(即:所有空输入在页面加载时填充'test')

我是JQuery的新手所以我怀疑我可能误解了链接的工作方式。任何人都可以给我指点吗?它类似于我试图做的两个部分在单独尝试时是正确的,但不能一起工作。

2 个答案:

答案 0 :(得分:3)

我认为应该是这样的:

$('td.field :text[value=""]').parents('tr.row').hide();

原因::文本(输入)是来自td.field的子项。如果你把td.field:text放错了,因为它们是不同的选择器。

答案 1 :(得分:0)

为什么不采用相反的方式 - 选择带空值的INPUT,然后再转到

父母()。父母()。隐藏()

第一个父母获得TD,第二个获得TR