2016-05-07 102 views
0

我正在使用WordPress的wpdiscuz插件,我想移除.wc-comment-title的部分内容,即用jQuery或JavaScript删除段落中的部分内容。移除元素中的句子部分

这是代码:

<p class="wc-comment-title"> 
<span class="wc_header_text_count">4>/span> 
"Comments on "Article 1"" 
</p> 

它显示:4个评论对 “第1条”

,我想使它:4评论

数的评论以及文章的名称根据意见以及有关文章的数量而变化,是动态的。

例如:评论对 “博客帖子4

在这种情况下,我希望它显示:3评论

这可能吗?

+0

是来自API的评论数量还是纯粹的客户端? –

+0

它纯粹是客户端作为文章的名称。我想要的唯一的细节是删除文章的名称。文章前的'on'我可以在插件的短语设置中进行操作。 – viery365

回答

2

wc_header_text_count类中,可以使用.nextSibling来获取相邻的文本节点。文本节点有许多方法可用于操作其内容,但由于您似乎只想使用文本Comments,因此您可以将其完全替换。

var spans = document.querySelectorAll(".wc_header_text_count") 
 

 
for (var i = 0; i < spans.length; i++) { 
 
    spans[i].nextSibling.data = " Comments"; 
 
}
<p class="wc-comment-title"> 
 
<span class="wc_header_text_count">4</span> 
 
"Comments on "Article 1"" 
 
</p> 
 

 
<p class="wc-comment-title"> 
 
<span class="wc_header_text_count">3</span> 
 
"Comments on "Blog Post 4"" 
 
</p>

如果你并不一定要“评论”,而是想第一个字没有引号,你可以使用正则表达式。

var spans = document.querySelectorAll(".wc_header_text_count") 
 

 
for (var i = 0; i < spans.length; i++) { 
 
    spans[i].nextSibling.data = 
 
    spans[i].nextSibling.data.replace(/^\s*"?(\w+)[\s\S]*$/, " $1"); 
 
}
<p class="wc-comment-title"> 
 
<span class="wc_header_text_count">4</span> 
 
"Comments on "Article 1"" 
 
</p> 
 

 
<p class="wc-comment-title"> 
 
<span class="wc_header_text_count">3</span> 
 
"Comments on "Blog Post 4"" 
 
</p>

+0

谢谢:)我要去试试:) – viery365

+0

你真了不起!谢谢它完全解决了!!!!! – viery365

+0

我只需等待一分钟即可接受您的答案:) – viery365

1

你不能只是取代 “注释” 结尾的文本?像这样:https://jsfiddle.net/6o3wha9g/

$('.wc-comment-title').contents().last()[0].textContent=' Comments'; 
+0

是:)它也可以。你的'简单'的jQuery语句也可以被接受。迟到几分钟。但对于每个人都有一个类似的问题:这也工作!非常感谢你! – viery365

+0

唯一的区别是,当它有0条评论时,它只显示'评论',而不是'0评论' – viery365