如果p标签只包含“dots(....)”,如何隐藏文章(父)标签?

时间:2014-10-02 10:31:19

标签: jquery

如果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>

感谢您的宝贵帮助。我尽我所能,但它没有用。

2 个答案:

答案 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();