我有可能通过jquery用“匿名”替换我的名字。但仍然保留我的锚标记与评论的特定链接。 我无法理解,所以我尝试删除文本并保留评论
$('div.entryFooter').replaceWith($('div.entryFooter a'));
但它显示了所有三个'a'元素的所有内容 在我所有的div中。
理想情况下,我只需要将名称替换为“匿名”。我的名字永远不同,所以我需要一种方法在“发布者”之后找到这个名字
<div class="entryFooter">Posted by mjroodt at 24/10/2011 11:48<a href="/BlogPage.aspxid=20396&blogid=58906">Comments (1)</a></div>
<div class="entryFooter">Posted by mjroodt at 27/10/2011 13:33<a href="/BlogPage.aspx?id=12396&blogid=58945">Comments (2)</a></div>
<div class="entryFooter">Posted by mjroodt at 27/10/2011 15:59<a href="/BlogPage.aspx?id=14396&blogid=59963">Comments (7)</a></div>
非常感谢
答案 0 :(得分:4)
这里不需要jQuery。只需使用Javascript replace([substring], [newstring])
函数:
var value = $(".div.entryFooter").text().replace("James Johnson", "Anonymous");
需要注意的是,这仅适用于视觉显示。如果您不希望显示名称,则需要在服务器或数据库级别解析它们。
$(".div.entryFooter").each(function(){
$(this).text($(this).text().replace("James Johnson", "Anonymous"));
});
答案 1 :(得分:3)
这个循环将解析名称,无论它是什么,并在这种情况下将其替换为anon:
$('div').each(function () {
var $this = $(this),
text = $this.text(),
name = text.match(/Posted by (.+) at .+/)[1]
$this.text(text.replace(name, 'anon'))
});
使用:
答案 2 :(得分:2)
如果要隐藏真实姓名,则必须调整服务器响应 仅限视觉更改,请使用以下代码:
var name = "mjroodt";
var replaceBy = "anonymous";
//Generate a replace-all pattern
var pattern = new RegExp(name.replace(/([[^$.|?*+(){}])/g, '\\$1'), 'g');
//Loop through each `div.entryFooter` element
$("div.entryFooter").each(function(){
var $this = $(this);
var text = $this.text();
//Check if the name exists. Otherwise, ignore
if(text.indexOf(name) == -1) return;
$this.text(text.replace(pattern, replaceBy));
})
答案 3 :(得分:2)
您可以通过使用以下几行Jquery来完成此操作。此解决方案将使您的锚标记按原样运行,并且您不需要知道要替换的名称。
$('.entryFooter').each(function(){
var html_arr = $(this).html().split(' ');
html_arr[2] = 'anonymous';
$(this).html(html_arr.join(' '));
});
答案 4 :(得分:1)
您可以匹配任何名称,并使用以下代码将其替换为“匿名”,
text.replace(/by[ ][a-zA-Z0-9]*[ ]at/,"by anonymous at");
上述内容将取代“by by”和“at”之间的内容,“由xyz at发布”,“匿名发布”。
答案 5 :(得分:0)
我建议你将文本换成span并迭代它们以使用RegExp更改text():
根据您的要求查看工作示例:http://jsfiddle.net/mikhailov/ypRsP/
<强> HTML 强>
<div class="entryFooter">
<span>Posted by mjroodt at 24/10/2011 11:48</span>
<a href="/BlogPage.aspxid=20396&blogid=58906">Comments (1)</a>
</div>
<div class="entryFooter">
<span>Posted by mjroodt at 27/10/2011 13:33</span>
<a href="/BlogPage.aspx?id=12396&blogid=58945">Comments (2)</a>
</div>
<div class="entryFooter">
<span>Posted by mjroodt at 27/10/2011 15:59</span>
<a href="/BlogPage.aspx?id=14396&blogid=59963">Comments (7)</a>
</div>
<强> JS 强>
$('.entryFooter span').each(function(){
var that = $(this);
var content = that.text();
var t = content.replace(/^Posted by [A-Za-z]+/, "Posted by Anonymous");
that.text(t);
});