首页 > 解决方案 > 从目录 (AD) 中读取的 HTML 中删除电子邮件签名中的行

问题描述

我正在尝试通过 jquery 或 javascript 删除 html 中的一行。我正在从目录中读取,但如果一行中没有信息,我不希望它可见。假设我有两行,目录中的用户没有手机号码,如何为他们删除?

我真的尝试了很多东西,但我一定错过了一些东西。

<tr>
   <td>email: %%email%%</td>
</tr>
<tr>
   <td>mobile: %%MobileNumber%%</td>
</tr>

我会假设该行只会为没有手机号码的用户删除。

标签: javascriptjqueryarrayshtml-table

解决方案


您需要将文本设置为变量,然后在“:”之后找到子字符串,它将返回 %%MobileNumber%%。

如果子字符串为空,那么我们将其隐藏。

如您所见,第三个td没有所需的文本,因此它被隐藏了。

$(function() {

  $('td').each(function() {
    var str = $(this).text();
    var sub = str.substring(
      str.indexOf(':', 1) + 1
    );
    if (sub == '') {
      // or .remove()
      $(this).hide();
    }
  });

});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
  <tbody>
    <tr>
      <td>email: %%email%%</td>
    </tr>
    <tr>
      <td>mobile: %%MobileNumber%%</td>
    </tr>
    <tr>
      <td>mobile:</td>
    </tr>
  </tbody>
</table>

如果您只希望它用于包含“mobile:”的 td

// find if a td starts with "mobile:" and if the substring after is empty
if ( str.match("^mobile:") && sub == '' ) {
    $(this).hide();
}

推荐阅读