我无法让这个工作,我无法找到任何类似的问题。
我有一个像这样的行的表:
--set
我想检查所有第二个单元格是否具有文本&#34;尺寸&#34;在里面!如果是,则隐藏第三个<div class="gui-table">
<table>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td><p class="customfields">Size</p></td>
<td></td>
</tr>
//etc...
。
所以我认为可行的是:
td
这不起作用!有人看到这有什么问题吗?
答案 0 :(得分:1)
只是做:
$('.gui-table .customfields:contains("Size")').css('visibility', 'hidden');
答案 1 :(得分:1)
假设我正确理解你的问题,下面应该这样做:
$('.gui-table p.customfields:contains("Size")').parent().next().hide();
td { border: 1px solid black; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="gui-table">
<table>
<tr>
<td></td>
<td></td>
<td>Shown</td>
</tr>
<tr>
<td></td>
<td><p class="customfields">Size</p></td>
<td>Hidden</td>
</tr>
</table>
</div>
这将隐藏包含带有文本Size的p标签的任何表格单元格后的下一个表格单元格。
通过在gui-table中找到P标记containing大小来工作 - $('.gui-table p.customfields:contains("Size")')
然后使用.parent()选择它的父表格单元格。
答案 2 :(得分:1)
我对此嗤之以鼻,想出了JSFiddle,这会让你再次前行。基本功能与您开始时非常相似,但修改如下:
function doItNow(e)
{
$('.gui-table tr').each(function ()
{
$('td:nth-child(2) .customfields:contains("Size")').each(function ()
{
$(this).parents('tr').children('td:nth-child(3)').css('visibility', 'hidden');
});
});
}
请注意,内部each()传递的是段落元素而不是单元格元素。所以我遍历了parent()链,直到我找到了行并隐藏了第3个孩子。你可能能够在没有内部的情况下对其进行编码,但是我太懒了,不能那么复杂!
答案 3 :(得分:0)
如果您只想隐藏第三列,当第二列中有“大小”字样时,您可以这样做:
$('.gui-table td:nth-child(2):contains("Size")').next().css('visibility', 'hidden');
这是一个jsfiddle: http://jsfiddle.net/0qczvak5/
解释:
选择类名为.gui-table
的所有元素,选择td
的所有第二个td:nth-child(2)
,并使用:contains("Size")
过滤它们。现在,您的所有第二个td
都带有“大小”字样,而.next()
则获得以下单元格(第三个),然后使用.css('visibility', 'hidden')
隐藏它。
答案 4 :(得分:0)
$(".gui-table tr td:nth-child(2)").each(
function (index,tag){
if ($(tag).find("p").text() == "Size")
$(tag).css('visibility', 'hidden');
}
)
这样可行。