根据DIV中的文本值隐藏DIV

时间:2014-07-09 15:42:37

标签: jquery hide contains

我是JQuery的新手,当td.ms-vb的内容包含文本&#34时,我试图隐藏DIV#SAlertWrap;目前没有活动公告"。 td.ms-vb包含在#SAlertWrap中。

我可以隐藏DIV本身但无法弄清楚如何根据文本值隐藏它。

$(document).ready(function() {
$('#SAlertWrap').hide( );
});

我也可以选择隐藏或替换文本的文本,但这只会影响特定的行。

$(document).ready(function() {
$("td.ms-vb:contains('There are currently no active announcements')").parent().hide();
});

我尝试用$('#SAlertWrap')替换parent()并不断出现语法错误。

关于如何组合这些的任何想法?

谢谢

3 个答案:

答案 0 :(得分:2)

使用您的方法,但使用。parent()和可选的选择器。如果您的td不是直接的孩子,请改用.parents()

$(document).ready(function() {
  $("td.ms-vb:contains('There are currently no active announcements')")
   .parents('#SAlertWrap').hide();
});

稍微提高性能可能是使用.closest而不是父母。

答案 1 :(得分:0)

$(document).ready(function() {
  if ($("td.ms-vb").text() == 'There are currently no active announcements') {
    $("td.ms-vb").parent().hide();
  }
});

答案 2 :(得分:0)

你可以这样做:

if ( $("td.ms-vb:contains('There are currently no active announcements')").length )
    $('#SAlertWrap').hide( );

.length检查选择器提供的匹配元素数组。如果长度大于0,则隐藏元素。 (0在JS中是假的)