我有以下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的新手所以我怀疑我可能误解了链接的工作方式。任何人都可以给我指点吗?它类似于我试图做的两个部分在单独尝试时是正确的,但不能一起工作。
答案 0 :(得分:3)
我认为应该是这样的:
$('td.field :text[value=""]').parents('tr.row').hide();
原因::文本(输入)是来自td.field的子项。如果你把td.field:text放错了,因为它们是不同的选择器。
答案 1 :(得分:0)
为什么不采用相反的方式 - 选择带空值的INPUT,然后再转到
父母()。父母()。隐藏()
第一个父母获得TD,第二个获得TR