如果链接没有href,则隐藏父TR?

时间:2016-03-09 05:03:29

标签: javascript jquery

我目前有这个:

<table>
    <tbody>
        <tr>
            <td>
            <a href="http://www.google.com">Visit Website</a>
            </td>
        </tr>
        <tr>
            <td>
            <a href="">Visit Website</a>
            </td>
        </tr>
        <tr>
            <td>
            <a href="http://www.google.com">Visit Website</a>
            </td>
        </tr>
        <tr>
            <td>
            <a href="">Visit Website</a>
            </td>
        </tr>
    </tbody>
</table>

我需要一些javascript: 如果<a>没有href(href =“”),则隐藏包裹它的TR。

如何使用javascript实现此目的?

3 个答案:

答案 0 :(得分:2)

您可以使用 attribute equals selector 获取a的{​​{1}}代码,然后通过 closest()获取href="" < /强>

tr
$('a[href=""]').closest('tr').hide();

或者您可以使用 :has() has() attribute equals selector

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
    <tbody>
        <tr>
            <td>
            <a href="http://www.google.com">Visit Website</a>
            </td>
        </tr>
        <tr>
            <td>
            <a href="">Visit Website</a>
            </td>
        </tr>
        <tr>
            <td>
            <a href="http://www.google.com">Visit Website</a>
            </td>
        </tr>
        <tr>
            <td>
            <a href="">Visit Website</a>
            </td>
        </tr>
    </tbody>
</table>
$('tr:has(a[href=""])').hide();
仅供参考:

如果您想选择不含<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <table> <tbody> <tr> <td> <a href="http://www.google.com">Visit Website</a> </td> </tr> <tr> <td> <a href="">Visit Website</a> </td> </tr> <tr> <td> <a href="http://www.google.com">Visit Website</a> </td> </tr> <tr> <td> <a href="">Visit Website</a> </td> </tr> </tbody> </table>属性的a代码,则可以使用 :not() 选择器,例如:

href

答案 1 :(得分:1)

如果您只想检查href =“”

只需尝试

$('a[href=""]').parent().parent().hide();

$('a[href=""]').closest("tr").hide();

如果您还想仅检查href =“”或没有给出href属性

只需尝试

$('a[href=""],a:not([href])').parent().parent().hide();

$('a[href=""],a:not([href])').closest("tr").hide();

答案 2 :(得分:1)

https://jsfiddle.net/现在看一下它的工作情况,请检查