Javascript 如果包含文本,请选择元素
我不能让这一个工作,我找不到任何类似的问题,做同样的我想要的 我有一个表,其中的行如下:Javascript 如果包含文本,请选择元素,javascript,jquery,Javascript,Jquery,我不能让这一个工作,我找不到任何类似的问题,做同样的我想要的 我有一个表,其中的行如下: <div class="gui-table"> <table> <tr> <td></td> <td></td> <td></td>
<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...
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');
});
});
}
这不行!有人知道这有什么问题吗?只要做:
$('.gui-table .customfields:contains("Size")').css('visibility', 'hidden');
小提琴手:假设我正确理解了你的问题,那么以下几点就可以了:
$('.gui表p.customfields:contains(“Size”)).parent().next().hide()代码>
td{边框:1px纯黑;}
展示
大小
隐藏的
如果您只想隐藏第三列,当第二列中有“size”一词时,您可以这样做:
$('.gui-table td:nth-child(2):contains("Size")').next().css('visibility', 'hidden');
下面是一个JSFIDLE:
解释:
选择类名为.gui table
的所有元素,选择所有第二个td
s的td:n子级(2)
,使用:contains(“大小”)
过滤它们。现在您有了所有第二个td
s,其中包含单词“Size”和。next()
您得到了以下单元格(第三个),并使用.css('visibility','hidden')
将其隐藏
这会有用的。我仔细研究了一下,想出了这个,应该能让你重新开始。基本功能与您开始时非常相似,但修改如下:
<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...
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()传递的是段落元素,而不是单元格元素。因此,我遍历parents()链,直到找到行并隐藏第三个孩子。你也许可以在没有内部代码的情况下编写这些代码,但我太懒了,不会那么复杂 “可见性”拼写错误(两个l)。另外,您说要隐藏行的第三个单元格,但要隐藏的$(this)将表示行元素。