jQuery隐藏一个如果他有一个“”(空格,不是)

时间:2014-12-22 13:16:09

标签: jquery css

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');
    }
});

http://jsfiddle.net/yeqgtb06/

如何使用visibility:hidden?

隐藏包含空格的TD

4 个答案:

答案 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

您可以做的是,在filtertd仅返回包含空格的td,然后根据需要更改css

注意:如果有一个空格或多个空格甚至没有空格并且只是空,则无关紧要。但是,如果有&nbsp;,则不会像问题标题中提到的那样影响它。

$('.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>&nbsp;</td>  <!-- &nbsp; 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');
    });
});
});