基于另一个类的存在,使用Javascript隐藏一个类

基于另一个类的存在,使用Javascript隐藏一个类,javascript,html,Javascript,Html,我一直在尝试通过Javascript隐藏一个类,如果存在另一个类。为了更好地解释这种情况,我创建了一个小图像,描绘了的情况 这是我正在使用的代码: if ($(“.tripdetails” .tripavailable”).length > 0){ document. getElementsByClassName(“.soldoutform”).style.display = “none”; } 分区情况: <div class="tripdetails"> <div

我一直在尝试通过Javascript隐藏一个类,如果存在另一个类。为了更好地解释这种情况,我创建了一个小图像,描绘了
的情况

这是我正在使用的代码:

if ($(“.tripdetails” .tripavailable”).length > 0){
document. getElementsByClassName(“.soldoutform”).style.display = “none”;
}
分区情况:

<div class="tripdetails">
 <div class="tripavailable OR tripunavailable">
  <div class="soldoutform">
  </div>
 </div>
</div>

对于或部分,有第一个或第二个类名。如果它是第一个“tripavailable”,则应隐藏类“soldoutform”

非常感谢您的回复,我真的很感激!:)


干杯

你不需要JS来做这个。只需利用CSS即可:

.tripavailable > .soldoutform {
    display: none;
}

你不需要JS。只需利用CSS即可:

.tripavailable > .soldoutform {
    display: none;
}

两个类名之间有一个无关的双引号字符

请注意,如果两个类位于同一元素上(而不是两个不同的元素,且
tripavailable
元素位于
tripdetails
元素内),则两个类名之间不会有空格

if ( $(".tripdetails .tripavailable").length > 0){
  $(".soldoutform").hide();
}


还要注意,您发布的代码使用了有问题的引号字符,例如由文字处理器生成的引号字符。您可能已经知道这一点,但值得一提的是,这种类型的引号将破坏您的代码。

在两个类名之间有一个无关的双引号字符

请注意,如果两个类位于同一元素上(而不是两个不同的元素,且
tripavailable
元素位于
tripdetails
元素内),则两个类名之间不会有空格

if ( $(".tripdetails .tripavailable").length > 0){
  $(".soldoutform").hide();
}

还要注意,您发布的代码使用了有问题的引号字符,例如由文字处理器生成的引号字符。您可能已经知道了这一点,但值得一提的是,这种类型的引号将破坏您的代码。

CSS将完成这项工作(您可以使用display none或visibility hidden)

如果您确实想使用jquery,则可以执行以下操作:

$(".tripavailable .soldoutform").hide();
或者使用原始代码,但删除额外的报价:

if ( $(".tripdetails .tripavailable").length > 0){
  $(".soldoutform").hide();
}
编辑:

如果该类位于同一个DIV中,只需按如下方式删除空格:

$(".tripavailable .soldoutform").hide();
CSS:

JQUERY:

$(".tripavailable.soldoutform").hide();
您的原始JQUERY:

if ( $(".tripdetails.tripavailable").length > 0){
  $(".soldoutform").hide();
}
CSS将完成这项工作(您可以使用无显示或隐藏可见性)

如果您确实想使用jquery,则可以执行以下操作:

$(".tripavailable .soldoutform").hide();
或者使用原始代码,但删除额外的报价:

if ( $(".tripdetails .tripavailable").length > 0){
  $(".soldoutform").hide();
}
编辑:

如果该类位于同一个DIV中,只需按如下方式删除空格:

$(".tripavailable .soldoutform").hide();
CSS:

JQUERY:

$(".tripavailable.soldoutform").hide();
您的原始JQUERY:

if ( $(".tripdetails.tripavailable").length > 0){
  $(".soldoutform").hide();
}

忽略JS代码中的无效引号,为什么不继续使用jQuery,它实际上支持短方法:
$(“.tripavailable.soldoutform”).hide()
--
文档。getElementsByClassName()
a)需要不带点的类的名称b)返回节点列表c)因此没有
style
属性。嘿,Matt-请继续。你的问题回答得满意吗?如果有更多我们可以帮助的,请在我的答案下面添加评论,或者编辑您的问题以寻求更多帮助。否则,如果你能选择一个“最佳答案”(点击答案旁边的复选标记)来结束这个问题,那就太好了——这样做不会花费你什么,但会帮助我们。如果没有答案是有帮助的,请发布您自己的答案,并选择带有复选标记的答案以结束问题。谢谢忽略JS代码中的无效引号,为什么不继续使用jQuery,它实际上支持短方法:
$(“.tripavailable.soldoutform”).hide()
--
文档。getElementsByClassName()
a)需要不带点的类的名称b)返回节点列表c)因此没有
style
属性。嘿,Matt-请继续。你的问题回答得满意吗?如果有更多我们可以帮助的,请在我的答案下面添加评论,或者编辑您的问题以寻求更多帮助。否则,如果你能选择一个“最佳答案”(点击答案旁边的复选标记)来结束这个问题,那就太好了——这样做不会花费你什么,但会帮助我们。如果没有答案是有帮助的,请发布您自己的答案,并选择带有复选标记的答案以结束问题。谢谢嗨,IceMetalPunk,如果tripavailable和soldoutform类都在同一个div中呢?嗨,IceMetalPunk,如果tripavailable和soldoutform类都在同一个div中呢?嗨,iMac,非常感谢您的帮助。当.tripavailable和.soldoutform都在同一个div中时,您知道如何使用CSS执行上述操作吗?(我把上面的div解释搞砸了)。谢谢你,伙计:)@mathijs de ruiter当然,把它们写在一起就行了。tripavailable.soldoutformHi iMac,非常感谢你的帮助。当.tripavailable和.soldoutform都在同一个div中时,您知道如何使用CSS执行上述操作吗?(我把上面的div解释搞砸了)。谢谢,伙计:)@mathijs de ruiter当然,把它们写在一起就行了。tripavailable.soldoutform