HTML代码
<table class="wrap_class_adv">
<tr>
<td>321</td>
<td>123</td>
<td> </td> <--- HERE
</tr>
</table>
jQuery代码
$('.wrap_class_adv tr').each(function () {
if ($(this).find('td').text() === " ") {
$(this).class('visibility', 'hidden');
}
});
如何使用visibility:hidden?
隐藏包含空格的TD答案 0 :(得分:1)
您忘记链接jQuery,而不是尝试设置class
,而是设置css
。
看我的小提琴:
<table class="wrap_class_adv">
<tr>
<td>321</td>
<td>123</td>
<td> </td>
</tr>
</table>
<script>
$('.wrap_class_adv td').each(function () {
if ($(this).text() === " ") {
$(this).addClass('hidden');
}
});
</script>
<style>
td {border:1px solid #000;}
.hidden {visibility: hidden;}
</style>
http://jsfiddle.net/yeqgtb06/26/
PS。不要忘记链接jQuery。
答案 1 :(得分:1)
你走在正确的轨道上。对于每个tr
,您要查找包含空格的td
。
您可以做的是,在filter
上td
仅返回包含空格的td
,然后根据需要更改css
。
注意:如果有一个空格或多个空格甚至没有空格并且只是空,则无关紧要。但是,如果有
,则不会像问题标题中提到的那样影响它。
$('.wrap_class_adv tr').each(function () { // for each tr
$(this).find("td").filter(function() { // filter td
return (this.innerText == ""); // whose innerText is empty
}).css('visibility', 'hidden'); // apply visibility to css
});
td { border: 1px solid #000; padding: 4px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table class="wrap_class_adv">
<tr>
<td>321</td>
<td>123</td>
<td> </td> <!-- One space -->
<td> </td> <!-- Three spaces -->
<td> </td> <!-- is visible -->
</tr>
</table>
答案 2 :(得分:0)
如果您希望隐藏任何包含空格的元素,即使它包含其他文本,请使用包含选择器,如下所示
$("td:contains(' ')")
如果你想隐藏只包含空格字符的元素,你可能必须全部选择它们然后迭代结果并检查它们的内容:
$('td').each(function() {
if ($(this).html() == ' ')
$(this).css('visibility', 'hidden');
});
答案 3 :(得分:0)
尝试将类设置为td:
这里的http://jsfiddle.net/elennaro/yeqgtb06/28/代码完全按照你想要的方式隐藏td而不是tr
CSS:
td {
border:1px solid #000;
}
.hidden {
display: none;
}
JS:
$(document).ready(function () {
$('.wrap_class_adv tr').each(function () {
$(this).find('td').each(function () {
if($(this).text().trim() === "")
$(this).addClass('hidden');
});
});
});