【问题标题】:jQuery to hide substring in a table celljQuery隐藏表格单元格中的子字符串
【发布时间】:2017-09-03 05:04:02
【问题描述】:

我想在表格单元格中隐藏一个子字符串。假设表格如下所示:

<div id="table">
  <table>
    <tr>
      <td> Blah </td>
      <td> Blah [100, 100]</td>
      <td> Blah [130, 70]</td>
    </tr>
  </table>
</div>

如何使用 jQuery(和 CSS)隐藏单元格 2 的 [100,100] 部分和单元格 3 的 [130, 70] 部分?

我在另一个类似问题的答案中找到了这个解决方案:

<div class="text">Good Stuff Hide Me</div>
<div class="text">Great Stuff Hide Me</div>
<div class="text">Best Stuff Hide Me</div>

$('div.text').html(function (i, t) {
    return t.replace('Hide Me', '<span class="hidden">Hide Me</span>');
})

但我认为我需要一个正则表达式解决方案,因为 [ ] 部分的内容可能不同?还是有更好的iea?

【问题讨论】:

    标签: jquery html-table hide cell hidden


    【解决方案1】:

    由于您询问了表格单元格,因此您希望归零并限制为您的 &lt;td&gt;,以防万一您在其他地方有类似的文本:

    $( 'td' ).each(function() {
        var currentText = $( this ).text();
        var newText = currentText.replace(/\[.+\]/g, '');
        $( this ).text( newText );
    });
    

    【讨论】:

      【解决方案2】:

      t.replace(/(\s*\[s*\d+\s*,\s*\d+\s*\])/, '&lt;span class="hidden"&gt;$1&lt;/span&gt;')

      Brian 的回答是删除文本而不是隐藏它(如果您以后不需要该文本,这更节省成本)。如果在任何情况下,您确实需要隐藏它以供将来参考,这将起到作用。我也倾向于使用更精确的正则表达式。 Brian's 将删除方括号之间的所有内容。只有当它们之间有两个用逗号分隔的数字时,上面的数字才会匹配。

      正则表达式参考 -> https://www.w3schools.com/jsref/jsref_obj_regexp.asp

      捕获组解释 -> https://stackoverflow.com/a/6419076/7081773

      【讨论】:

        【解决方案3】:

        您对需要正则表达式是正确的。这应该有效:

        <div class="text">Good Stuff [100]</div>
        <div class="text">Great Stuff[100,010]</div>
        <div class="text">Best Stuff[70, 130, 180]</div>
        
        $('div.text').html(function (i, t) {
            return t.replace(/\[.*\]/g, '');
        })
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-03-17
          • 2012-08-14
          • 1970-01-01
          • 2013-04-19
          • 1970-01-01
          • 2011-02-07
          • 2023-03-03
          • 1970-01-01
          相关资源
          最近更新 更多