jQuery如何从span中删除文本

11

我对 JQuery 还很陌生,不知道如何执行我想要的查询。

我正在使用 SharePoint,当使用“外部数据列”并将其设置为必填字段时,错误消息总是出现,直到您填写数据。与其他类型的列不同,它们只会在您单击“确定/保存”且未填写数据时才会出现。因此,我需要仅从这些类型的列中删除错误消息文本。

我假设我需要搜索包含“External Data”字样的.ms-error类内的 span 并将其隐藏。

通过使用 IE 开发人员工具栏,我已经确定了该区域。

 <table class="ms-usereditor" id="ctl00_m_g_05df537a_596b_443a_a11e_764069facec8_ctl00_Field_External_539c53fe_8334_43c8_b089_cc28d7895e68_Picker_OuterTable" style="border-collapse: collapse;" border="0" cellSpacing="0" cellPadding="0">
    <tbody>
     <tr>
     <td colSpan="3">
       <span class="ms-error" id="ctl00_m_g_05df537a_596b_443a_a11e_764069facec8_ctl00_Field_External_539c53fe_8334_43c8_b089_cc28d7895e68_Picker_errorLabel">
           Text - You must specify a value before using the Check button. You can also use Select button to choose External Data.
        </span>
      </td>
      </tr>
    </tbody>
</table>

请有人能帮助我使用 JQuery。
3个回答

45
var spans = $('.ms-error');

spans.text(''); // clear the text
spans.hide(); // make them display: none
spans.remove(); // remove them from the DOM completely
spans.empty(); // remove all their content

1
.empty().text('')做的是同样的事情。 - Moin Zaman
谢谢,但这也会删除其他不是外部数据的字段(例如人员选择器)中的错误消息。 - Cann0nF0dder
我使用了.text(' ')。这个方法非常好用,因为它可以清除DOM中的内容。 - Casey Robinson

5

$('span.ms-error:contains("External Data")').hide();

如果您确定这些标签位于特定的或

内,则可以针对这些元素进行更具体的定位以提高脚本性能。

例如:

$('.ms-usereditor span.ms-error:contains("External Data")').hide();


我可能错了,但是除非你知道它们容器的ID,否则这与仅使用ms-error类选择器相比不会更快。 - jbabey
谢谢你,Moin。我发誓你提供的就是我尝试过的。我直接从这里复制粘贴到我的代码中,它起作用了。谢谢。 - Cann0nF0dder
@Paul:不用谢!我认为这可能不是同样的问题。也许是contains内部的双引号? - Moin Zaman

0

这里有一个更优化和更快的方法:

$(".ms-usereditor span[class^='ms-error']:contains('External Data')").hide()

此外,当您需要一种类似于正则表达式模式来查找所有匹配节点或具有相似类名的节点时,此语法也可以完美运行。假设您需要查找 .ms-error-1 .ms-error-abc 这样的内容。同样的语法也可以使用,甚至更好的是您可以这样做:
$(".ms-usereditor span[class^='ms-error-']:contains('External Data')").hide()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接