如果article
标记包含点(....),我可能需要隐藏p
(父)标记,可能多达几个点甚至两个点。我使用了很多代码变化但我无法识别这些点。怎么可能?
我的代码1
$(".rating_only .comment_outer").each(function(){
if($(this).find("p:has(...)").length > 0){
$(this).hide();
}
});
我的代码2
$(".rating_only .comment_outer").each(function(){
if (!$(this).text().length > 3) {
$(this).hide();
}
});
我的代码3
$('.rating_only .comment_outer p').each(function() {
var textOfPara = $(this).text();
textOfPara.length;
if(textOfPara=="...." ) {
(this).parents(".rating_only .comments-area article").hide();
}
});
我的代码4
$(document).ready(function () {
var stringvar = $('.rating_only .comment_outer p').text();
if ((stringvar.charAt(0) == ".") && (stringvar.charAt(2) == "."))
{
console.log ('hai' );
(stringvar).parents(".rating_only .comments-area article").hide();
}
});
我的代码5
$(document).ready(function() {
$.each($(".comment_outer p"),function(){
if($(this).text().substring(1, 2) == ".."){
$(this).hide();
}
});
});
我的代码6
$('.rating_only .comment_outer').each(function() {
$(this).find(' p ').text().parents("article").hide();
});
我知道Code No.6与这个特定条件无关。
我的HTML:
<div class="comment_outer">
<p>….. </p>
</div>
感谢您的宝贵帮助。我尽我所能,但它没有用。
答案 0 :(得分:2)
使用RegExp。将它与jQuery .filter()
函数结合起来,得到:
$(document).ready(function() {
$(".comment_outer").filter(function() {
var ok = false;
$.each($("p", this), function() {
if ($(this).text().match(/[^\.\s…]/)) {
ok = true;
return false;
}
});
return !ok;
}).hide();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="comment_outer">
<p>Some text and some dots ...</p>
<p>...</p>
<p>. . .</p>
</div>
<hr/>
<div class="comment_outer">
<p>…</p>
<p>...</p>
<p>...</p>
<p>. . .</p>
</div>
答案 1 :(得分:1)
在您的示例中,您有两个不同的字符。省略号字符(...)和句点字符(。),因此您需要单独处理它们:
$("article").filter(function() {
return $(this).find(".rating_only .comment_outer p").text().match(/…|(\.{2,3})/).length;
}).hide();
如果每篇文章中.rating_only .comment_outer p
的文本与一个省略号字符或2/3连续句点字符匹配,则将使用正则表达式进行匹配。如果您愿意,可以trim()
text()
考虑空格:
$("article").filter(function() {
return $(this).find(".rating_only .comment_outer p").text().trim.match(/^…|(\.{2,3})$/).length;
}).hide();