繁体   English   中英

检查类是否存在与jQuery

[英]check if class exists with jquery

我试图遍历Html并查找元素是否具有特定的子代:

$('#thisFormat article div p').each(function() {
    if ( $(this).parent().find('.specialclass').length) {
    var LowerTrue="Yes";
    IsLower.push(LowerTrue);} 
    else{
    var LowerTrue="No";
    IsLower.push(LowerTrue);
    };                              

});

但是,尽管某些元素具有该specialclass但我No得到No答案。 我还要检查元素中是否存在::before标记:

<i title="Exists" class="specialclass">
  ::before
</i>

那么有可能解决我的问题吗? 任何建议,不胜感激。

HTML:

<div id="thisFormat">
    <article>
        <div>
            <p  class="specialclass">
                <i title="Hello" class="specialclass">
                    ::before
                </i>
            </p>
        </div>
    </article>
        <article>
           <div>
            <p  class="specialclass">
            </p>
           </div>
       </article>
</div>

这有效:

$('#thisFormat article div p').each(function() {
    if ( $(this).children("i").length) {
    var LowerTrue="Yes";
    IsLower.push(LowerTrue);} 
    else{
    var LowerTrue="No";
    IsLower.push(LowerTrue);
    };                              

});

要检查.each()::before标记,可以执行以下操作

$(/* get the <i> you want */).html == '::before';

数组的问题是,通过询问parent()您将div作为目标,而您说<i><p>

尝试以下

 var IsLower = [] $('#thisFormat article div p').each(function() { if ($(this).find('.specialclass').length == 1) { var LowerTrue = "Yes"; IsLower.push(LowerTrue); } else { var LowerTrue = "No"; IsLower.push(LowerTrue); }; }); $('#out').html(IsLower); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="thisFormat"> <article> <div> <p> <i title="Exists"> </i> </p> <p> <i title="Exists" class="specialclass"> </i> </p> </div> </article> </div> <div id="out"></div> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM