javascript - 删除具有特定内容的表 tr

标签 javascript jquery html

我在 SharePoint 2013 Web 应用程序中有以下表单:-

enter image description here

我需要删除所有表 <tr>除了那些以 "name" & "title" 开头的。那么有人可以建议我如何实现这一目标吗? 。这是上图标记的一部分(它显示两个 Tr 具有 Content Type (应删除),而另一个包含 Name ):-

<table id="formTbl" class="ms-formtable" width="100%" cellspacing="0" cellpadding="0" border="0" style="margin-top: 8px;">
<tbody>
<tr>
<td class="ms-formlabel" valign="top" nowrap="true">
<h3 class="ms-standardheader">Content Type</h3>
</td>
<td class="ms-formbody" valign="top">
</tr>
<tr>
<td class="ms-formlabel" width="113px" valign="top" nowrap="true">
<h3 class="ms-standardheader">
<nobr>
Name
<span class="ms-accentText" title="This is a required field."> *</span>
</nobr>
</h3>
</td>
<td class="ms-formbody" width="350px" valign="top">
</tr>
<tr>
<tr>
<td class="ms-formlabel" width="113px" valign="top" nowrap="true">
<td class="ms-formbody" width="350px" valign="top">
</tr>

现在我已经在 Web 应用程序中加载了 jquery 1.7 版,但我更喜欢使用纯 javaScript 来实现。

谢谢

编辑这里有更详细的标记:-

<div id="contentRow">
<div id="sideNavBox" class="ms-dialogHidden ms-forceWrap ms-noList">
<div id="contentBox" aria-relevant="all" aria-live="polite">
<div id="notificationArea" class="ms-notif-box"></div>
<div id="DeltaPageStatusBar">
<div id="customcalender"></div>
<div id="DeltaPlaceHolderMain">
<a id="mainContent" tabindex="-1" name="mainContent"></a>
<div style="padding-left:5px">
<table id="onetIDListForm" class="ms-core-tableNoSpace">
<tbody>
<tr>
<td>
<div class="ms-webpart-zone ms-fullWidth">
<div id="MSOZoneCell_WebPartWPQ2" class="s4-wpcell-plain ms-webpartzone-cell ms-webpart-cell-vertical ms-fullWidth ">
<div class="ms-webpart-chrome ms-webpart-chrome-vertical ms-webpart-chrome-fullWidth ">
<div id="WebPartWPQ2" class="noindex " style="" allowdelete="false" width="100%" haspers="false" webpartid="6c7d849e-da6b-4138-be9f-b99bde542065">
<table class="ms-informationbar" width="100%" cellspacing="0" cellpadding="2" border="0" style="margin-bottom: 5px;">
<div id="listFormToolBarTop" style="display: none;">
<span style="display:none">
<span></span>
<table width="100%">
<tbody>
<tr>
<td width="100%" valign="top">
<table id="formTbl" class="ms-formtable" width="100%" cellspacing="0" cellpadding="0" border="0" style="margin-top: 8px;">
<tbody>
<tr>
<td class="ms-formlabel" valign="top" nowrap="true">
<h3 class="ms-standardheader">Content Type</h3>
</td>
<td class="ms-formbody" valign="top">
</tr>
<tr>
<td class="ms-formlabel" width="113px" valign="top" nowrap="true">
<h3 class="ms-standardheader">
<nobr>
Name
<span class="ms-accentText" title="This is a required field."> *</span>
</nobr>
</h3>
</td>
<td class="ms-formbody" width="350px" valign="top">
</tr>
<tr>
<tr>
<td class="ms-formlabel" width="113px" valign="top" nowrap="true">
<td class="ms-formbody" width="350px" valign="top">
</tr>
<tr>
<tr>
<tr>

最佳答案

如有疑问,filter是你的 friend 吗:

JSFiddle: http://jsfiddle.net/TrueBlueAussie/jjzx6mge/4/

$('#formTbl tr').filter(function () {
    return !$(".ms-standardheader", this).text().match(/Name|Title/i);
}).remove();

传递给过滤器的函数返回的结果是一个 bool 值,告诉保留哪些项目(真),或排除哪些项目(假)。

此目标仅针对 ms-standardheader 类元素中包含请求文本的行。

它还只针对特定的内表,以避免从顶级表进行深度搜索并清除其中的整个表的情况。

虽然您可以使用普通的旧 JS 来完成此操作,但需要更多的代码。由于您已经安装了 jQuery 版本,因此使用它是有意义的。

关于javascript - 删除具有特定内容的表 tr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29920326/

相关文章:

html - Bootstrap 3 - 重叠内容

javascript - 在 div 中调整动态内容的大小并使其居中

javascript - 如何调用kendo中的函数

javascript - aurelia 中使用 repeat.for 绑定(bind)自定义元素的正确方法是什么

javascript - 从 jQuery 编辑器向 PHP 获取值(value)

javascript - Jquery,选择id然后选择部分相似的id

javascript - 如何让 map 区域背景颜色改变?

javascript - 无法通过 JavaScript 更改页面样式

jquery - 在另一个父元素中选择一个元素

html - 固定菜单不起作用