jquery help获取ms-vb2的子字符串

时间:2015-12-30 22:47:06

标签: javascript jquery html

我正在使用SharePoint页面。我只想显示日期,而不是显示驻留在td类ms-vb2元素中的时间。

这是HTML的一个示例 enter image description here

<tr class="ms-itmhover" iid="8,__bg40001300,0" setedgeborder="true">
<td class="ms-vb-itmcbx ms-vb-firstCell">
<td class="ms-vb-title" height="100%" onmouseover="OnChildItem(this)">
<td class="ms-vb-title" height="100%" onmouseover="OnChildItem(this)">
<td class="ms-vb2">320 Western Blvd Suite 102</td>
<td class="ms-vb2">Glastonbury</td>
<td class="ms-vb2">No</td>
<td class="ms-vb2">2/5yr</td>
<td class="ms-vb2">
<nobr>7/30/2014 8:00 PM</nobr>
</td>

以下是我尝试使用的jquery脚本示例,但它无效。因为我有几个元素使用相同的td类,我试图只选择其文本中仅包含8:00 PM的类。

<script src=".. .."></script>
 <script language="javascript">

_spBodyOnLoadFunctionNames.push("RemoveTime");

function RemoveTime(){
 $("td.ms-vb2:contains(8:00 PM)").substr("",11);
 }</script> 

它没有用,但是如果我想要突出显示所有具有相同td类的元素并且包含晚上8点的时间,我可以在上面的脚本中使用它:

$("td.ms-vb2:contains(8:00 PM)").css("background-color", "yellow");

但这不是我想要的效果。我想只显示DD / MM / YYYY。有人可以提供一些帮助吗?

2 个答案:

答案 0 :(得分:0)

尝试:

$('table td.ms-vb2').children('nobr:contains(8:00 PM)').each(function(index, element) {
  element.innerHTML = element.innerHTML.replace('8:00 PM', '');
});

答案 1 :(得分:0)

你的选择器$("td.ms-vb2:contains(8:00 PM)")将选择父div。为此,您可能希望在其上调用.html()。这应该返回类似<nobr>7/30/2014 8:00 PM</nobr>的内容,您需要通过JavaScript字符串替换器运行。

var newHtml = $("td.ms-vb2:contains(8:00 PM)").html()
  .replace('/[ ]\d+:\d+[ ]\w{2}/','');

$("td.ms-vb2:contains(8:00 PM)").html(newHtml);
这样的事情。 (未经测试)