[英]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.