我有一些看起来像这样的HTML:
<td class="targetTD">
<a href="http://foo.com">
<span>content</span>
</a>
**Text I want to modify**
<span>more content</span>
</td>
targetTD
根据正在呈现的内容迭代动态次数。对于每次迭代,我需要删除&#34;:&#34;的子字符串。从文本块中的代码开始。不幸的是,它没有自己的元素,我没有能力将它包装在一个干净整洁的id / class中。我做了一些搜索,发现了一些我认为可以解决的问题:
<script>
var myString = $('.targetTD').html();
myString = myString.replace(': ','');
$('.targetTD').html(myString);
</script>
但这会导致控制台错误:
无法获得财产&替换&#39;未定义或空引用。
感谢@Vaibhav提出解决方案!这个脚本起到了作用:
<script type="text/javascript">
$(function() {
$('.targetTD').each(function () {
$(this).html($(this).html().replace(/\:\s/g, ''));
});
});
</script>
感谢@BenM,我能够通过使用以下代码来阻止生成错误:
<script>
$(function() {
$('.targetTD').html(function() { $(this).html().replace(': ', ''); });
});
</script>
虽然我现在没有收到错误消息,但仍然没有删除&#34;:&#34;从文本块。关于为什么会出现这种情况的任何想法?
为了回应@ElvisLikeBear的评论,广泛提供一些SharePoint细节:
我想要完成的具体任务是从分组列表中隐藏列名。在SP2010中,通过隐藏ms-gb类很容易做到这一点。在2013年,微软已经将这个类集中在扩展/折叠按钮中,因此不能选择隐藏它。我已经成功地使用列名隐藏了跨度(在上面的代码中,包含在a中的跨度),但&#34;:&#34;在文本块中仍然无用,现在它只是浮动在每个类别名称的开头。
使用脚本编辑器Web部件将代码作为代码段部署在页面级别。
答案 0 :(得分:1)
Brendan,您的代码问题是您正在替换&#39;:&#39;与&#39;&#39;但是你没有再把它分配到同一个td。
Replace(':','')
功能仅替换第一次出现&#39;:#39;。请按照我的代码。它将取代所有的&#39;:&#39;用&#39;&#39;。
参考来自&#34; targetTD根据正在呈现的内容迭代动态次数&#34;
我假设您需要 foreach循环来迭代所有Tds。
Html: -
<table>
<tr>
<td class="targetTD">
<a href="http://foo.com">
<span>content</span>
</a>
Test:Test1
<span>more content</span>
</td>
</tr>
<tr>
<td class="targetTD">
<a href="http://foo.com">
<span>content</span>
</a>
Test:Test1:test2
<span>more content</span>
</td>
</tr>
<tr>
<td class="targetTD">
<a href="http://foo.com">
<span>content</span>
</a>
Test:Test1:test3:test4
<span>more content</span>
</td>
</tr>
</table>
Jquery: -
<script type="text/javascript">
$(function() {
$('.targetTD').each(function () {
$(this).html($(this).html().replace(/\:/g, ''));
});
});
</script>
脚本已经过测试并且运行正常。
答案 1 :(得分:0)
确保DOM准备就绪:
<script>
$(function() {
$('.targetTD').html(function() { $(this).html().replace(': ', ''); });
});
</script>
答案 2 :(得分:0)
您的标记表明这是在SharePoint网站上执行的,这就是您的代码无法解雇的原因。您需要为SharePoint正确部署它。
您可以在解决方案或功能中执行此操作,或者如果它是一个页面脚本您应该使用脚本Web部件(在SharePoint 2010和2007中称为内容编辑器webpart),您还可以添加代码段到SharePoint 2013中的页面。
您还可以通过SharePoint designer将脚本添加到标记中,但我不认为这是最佳做法,除非在某些特定情况下(但对于非SharePoint Devleoper而言,这将是最简单的方法)。