隐藏基于文本的锚点

时间:2015-10-06 15:07:48

标签: jquery

我有下表:

 <table class="k-tree-table">
 <tbody>
 <tr><td class="fixedCell" cellGroup="SH"><a class="specialButton" cellGroup="RI">SH</a></TD></tr>
 <tr><td class="fixedCell" cellGroup="RI"><a class="specialButton" cellGroup="RI">EP</a></TD></tr>
</table>

我想隐藏包含文本'SH'的锚标记。我尝试了以下但是它无法隐藏锚点:

$("a.specialButton:contains('SH')").hide();

如何使用JQuery获取此锚标记并隐藏它?

3 个答案:

答案 0 :(得分:0)

您的代码确实有效。确保在DOM准备就绪后才运行constexpr代码:

jQuery
$(function() {
    $('a.specialButton:contains("SH")').hide();
});

答案 1 :(得分:0)

...试

$(document).ready(function() {
    $('a.specialButton:contains("SH")').hide();
});

答案 2 :(得分:0)

正如其他人所提到的,代码确实按预期工作。

我能想到的两个原因可以解释为什么这对你不起作用:

1)在尝试隐藏链接之前,您没有等待加载DOM。 如上所述,请务必等待在DOM ready事件上运行此事件,该事件可以这样写:

 $(function() {
    $('a.specialButton:contains("SH")').hide();
});

2)也许你的表是从一些AJAX调用中填充的。如果是这种情况,则每次填充表后都需要运行此函数。此外,保存对表的引用并仅过滤表而不是整个页面可能是个好主意。这将有助于提高绩效。

var $table = $('table.k-tree-table');

// This would be your callback for the AJAX to populate the table
function gotDataForTreeTable(data) {
    // your code for populating table goes here

    $table.find('a.specialButton:contains("SH")').hide();
}

我希望这会有所帮助并祝你好运。

编辑:感谢您将答案标记为正确。我不确定你隐藏链接的条件是什么,但今天我也明白你可以使用CSS而不需要额外的Javascript。

td[cellGroup="SH"] a.specialButton { 
    display:none; 
}