【问题标题】:Hide table or text based on text in the table根据表格中的文字隐藏表格或文字
【发布时间】:2012-02-15 16:12:50
【问题描述】:

我必须隐藏一个如下所示的表格:

<table style="width:100%;">
<tr>
    <td style="color: #929292; font-size: 11px; text-align: center;">
    &copy; 1999 - 2012 MyCO&trade; Marketing Technologies&trade;, MyApp<sup>&reg;</sup>
    </td>
</tr>
</table>

我几乎尝试了所有方法,似乎没有任何效果。当我尝试各种包含时,我得到一个空错误,如果我包含全文,我会得到一个字符串错误。

【问题讨论】:

  • 如果表格包含上例中包含的 EXACT 文本,您想隐藏表格吗?

标签: javascript jquery find element


【解决方案1】:
    jQuery.noConflict();
    jQuery(document).ready(function() {
        var cells = $("table td");
        var str = "&copy; 1999 - 2012 PTI&trade; Marketing Technologies&trade;, MarcomCentral<sup>&reg;</sup>";
        var encodedText = $("<div></div>").html(str).text();

        cells.each(function(i, element) {
            var jqElement = $(element);
            if (jqElement.text().indexOf(encodedText) != -1)
                jqElement.hide();
        });
    });

【讨论】:

  • 仍然是未终止的字符串常量。确切的字符串是: © 1999 - 2012 PTI™ Marketing Technologies™、MarcomCentral®
  • 你一定是复制粘贴错了。我已经用您的确切 HTML 代码对此进行了测试,它可以 100% 工作...没有 Javascript 错误。我还对其进行了修改以包含您刚刚提供的确切字符串。
  • 我再次更改它以处理 html 实体,以防万一它被扔掉。
  • 我希望我可以说它有效,但我得到的只是“对象不支持此属性或方法”
  • 我没主意了。一定有什么你没有告诉我们的。
【解决方案2】:

这是基于您提供的 HTML 的一种解决方案:

$(function() {
    var text = 'MyApp'; // set the text string
    $('table tr td:contains('+ text +')') // find the td that contains the text
    .parents('table') // select the parent table
    .first() // reduce results to first table
    .hide(); // hide it
});

【讨论】:

  • 文字不准确,但很接近。 MYCO 和 MYAPP 不同。
  • 你想匹配 HTML 还是只匹配文本?
  • 如果 MYAPP 匹配,那也可以。这是一个预建的应用程序,底部有这个版权,我们可以摆脱它,但供应商拒绝提供帮助。我必须将 javascript 放入该表上方显示的文本字段中并保存。文本字段就像这里的 cmets,您输入它们并显示它们,但是它确实保存了 javascript。
  • Gotcha...如果它解决了您的问题,请随时将此解决方案标记为已回答。或者,如果您需要更多帮助,请告诉我。
  • 没问题。你知道应用程序是否确定加载 jQuery 吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-14
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 2013-04-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多