Javascript 一个条件,用于确定父容器子元素是否包含特定类的,并执行某些操作

Javascript 一个条件,用于确定父容器子元素是否包含特定类的,并执行某些操作,javascript,jquery,html,Javascript,Jquery,Html,这就是我到目前为止所尝试的。但这三种变通方法都不起作用 我尝试过使用hasClass,但没有运气让它工作 HTML: 我希望您希望搜索名为.cute的类是否在元素中。但是您不能从p遍历到div。最好改变如下,并尝试 您可以使用length查找存在的任何相关类 $(“div”)。单击(函数(){ if($(this).find('.cute').length>0){ 警报('has class'); } 否则{ 警报(“无等级”); } }); 点击我(我有一个可爱的班级) 点击我(我不是一个

这就是我到目前为止所尝试的。但这三种变通方法都不起作用

我尝试过使用hasClass,但没有运气让它工作

HTML:


我希望您希望搜索名为
.cute
的类是否在元素中。但是您不能从
p
遍历到
div
。最好改变如下,并尝试

您可以使用
length
查找存在的任何相关类

$(“div”)。单击(函数(){
if($(this).find('.cute').length>0){
警报('has class');
}
否则{
警报(“无等级”);
}
});

点击我(我有一个可爱的班级)
点击我(我不是一个可爱的班级)

我希望您希望搜索名为
.cute
的类是否在您的元素中。但是您不能从
p
遍历到
div
。最好改变如下,并尝试

您可以使用
length
查找存在的任何相关类

$(“div”)。单击(函数(){
if($(this).find('.cute').length>0){
警报('has class');
}
否则{
警报(“无等级”);
}
});

点击我(我有一个可爱的班级)
点击我(我不是一个可爱的班级)

您不能将
div
包装在
p
标签内

因为它在浏览器中呈现,如下所示-

<p> <div> test </div> </p>
JS代码-

$("p").click(function() {
  if ($(this).find('.cute').length) {
    alert("Found Cute Class");
  } else {
    alert("Didn't found cute class");
  }
});

不能将
div
包装在
p
标记内

因为它在浏览器中呈现,如下所示-

<p> <div> test </div> </p>
JS代码-

$("p").click(function() {
  if ($(this).find('.cute').length) {
    alert("Found Cute Class");
  } else {
    alert("Didn't found cute class");
  }
});

如果要使用
hasClass
,请尝试以下操作:

$(文档).ready(函数(){
$(“div”)。单击(函数(){
if($(this.find(“p”).hasClass(“可爱”)){
警惕(“有可爱”);
}
否则{
警报(“无等级”);
}
});
});

点击我(我有一个可爱的班级)

点击我(我不是一个可爱的班级)


如果要使用
hasClass
请尝试以下操作:

$(文档).ready(函数(){
$(“div”)。单击(函数(){
if($(this.find(“p”).hasClass(“可爱”)){
警惕(“有可爱”);
}
否则{
警报(“无等级”);
}
});
});

点击我(我有一个可爱的班级)

点击我(我不是一个可爱的班级)



为什么不使用
$(“p.cute”)。单击(function(){}
您不能将
放在
.HTML中structure@AnkitAgarwal出于某种原因,我需要点击它。@AlivetoDie是的。举个例子:D@Benjoe只需使用一些内联元素,并将其
display
属性设置为
block
,现在就可以得到块级元素和语义有效的DOM为什么不使用
$(“p.cute”)。单击(function(){}
您不能将
放在
.HTML中structure@AnkitAgarwal出于某种原因,我需要点击它。@AlivetoDie是的。举个例子:D@Benjoe只需使用一些内联元素,并将其
display
属性设置为
block
,现在就可以得到块级元素和语义有效的DOM这不是答案,这应该是评论这不是答案,这应该是评论你很受欢迎,伙计。愉快的编码。干杯!如果这解决了你的问题,请将此标记为答案。作为附加信息如果($(this)。查找('.cute')。长度)似乎也很好。Silentcoder。@Benjoe我在@Towkir的回答中也注意到了这一点。但实际上,
长度根据jquery的定义,它返回jquery对象中的元素数。但是它真的很有趣,谢谢你指出了这一点。哇。这是一个很好的信息!也许我会坚持使用长度>0现在XDYou's welcome mate.编码愉快。干杯!如果这解决了您的问题,请将此标记为答案。如果($(this).find('.cute').length),则将其标记为附加信息似乎也很好。Silentcoder。@Benjoe我在@Towkir的回答中也注意到了这一点。但实际上,
长度根据jquery的定义,它返回jquery对象中的元素数。但是它真的很有趣,谢谢你指出了这一点。哇。这是一个很好的信息!也许我会坚持使用现在长度>0 XD这也是一个很好的变通方法。但在某些情况下,我们可能希望更改标记。有没有任何方法可以使用hasClass进行动态更改?如果有人正在寻找hasClass变通方法,这很有用。我已经测试了$(This).sibles().hasClass(“可爱”)但是它不起作用。你的
可爱的
类在
div
中,因此你不能使用
兄弟姐妹
。你可以使用
儿童
。这也是一个很好的解决方法。但是在某些情况下,我们可能需要更改标记。是否有任何方法可以使用hasClass来实现这种动态?如果有人是正在寻找hasClass解决方案。我已经测试了$(this).sides().hasClass(“cute”)但它不起作用。您的
cute
类位于
div
内,因此您不能使用
sides
。您可以改用
children
<div>
  <p>Click me (I have a .cute class)
    <span class="cute"></span>
  </p>

  <p>Click me (I don't a .cute class)
    <span class="no-cute-class"></span>
  </p>
</div>
$("p").click(function() {
  if ($(this).find('.cute').length) {
    alert("Found Cute Class");
  } else {
    alert("Didn't found cute class");
  }
});