当前位置: 首页 > 知识库问答 >
问题:

jQuery仅在具有多个具有特定类的div的div中运行函数

纪实
2023-03-14

例如:

<div class="row">

<div class="sblock4">
<h4>Product 1</h4>
  <div class="available">product available</div>
  <div class="quckorder-btn">Quick order</div>
</div>

<div class="sblock4">
<h4>Product 2</h4>
  <div class="available">product available</div>
  <div class="quckorder-btn">Quick order</div>
</div>

<div class="sblock4">
<h4>Product 3</h4>
  <div class="not_available">out of stock</div>
  <div class="quckorder-btn">Quick order</div>
</div>

</div>

如果父div具有类为“not_available”的内部div,则需要隐藏“快速订购”按钮

尝试了一些JavaScript:

<script type="text/javascript">
  jQuery(document).ready(function(){
    if(jQuery('div').hasClass('not_available')){
      jQuery('.quckorder-btn').css('display', 'none');
    }
  });  
</script> 

另一个JavaScript示例

<script type="text/javascript">
  jQuery(document).ready(function(){
if (jQuery('.sblock4:contains("out of stock")')) {
    jQuery(".quckorder-btn").addClass("hide-button");
}
  });  
</script>  

但是它或者根本不起作用,或者对所有具有class.quckorder-btn的div都起作用。只需要在一个div中运行函数,该div中没有一个div具有类“not_available”

请求任何帮助。谢谢

共有2个答案

鄂和璧
2023-03-14

null

jQuery(document).ready(function() {
  jQuery('.not_available').siblings('.quckorder-btn').hide();
});
html prettyprint-override"><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="row">
  <div class="sblock4">
    <h4>Product 1</h4>
    <div class="available">product available</div>
    <div class="quckorder-btn">Quick order</div>
  </div>

  <div class="sblock4">
    <h4>Product 2</h4>
    <div class="available">product available</div>
    <div class="quckorder-btn">Quick order</div>
  </div>

  <div class="sblock4">
    <h4>Product 3</h4>
    <div class="not_available">out of stock</div>
    <div class="quckorder-btn">Quick order</div>
  </div>
</div>
陆洛城
2023-03-14

为了实现您的目标,可以使用:has()方法。此外,您需要从:has()返回的元素中使用find(),以便该类只添加到其子类中,而不是添加到所有.quckorder-btn元素中。试试看:

null

jQuery($ => {
  $('.sblock4:has(.not_available)').find('.quckorder-btn').addClass("hide-button");
});
.hide-button {
  display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="row">
  <div class="sblock4">
    <h4>Product 1</h4>
    <div class="available">product available</div>
    <div class="quckorder-btn">Quick order</div>
  </div>
  <div class="sblock4">
    <h4>Product 2</h4>
    <div class="available">product available</div>
    <div class="quckorder-btn">Quick order</div>
  </div>
  <div class="sblock4">
    <h4>Product 3</h4>
    <div class="not_available">out of stock</div>
    <div class="quckorder-btn">Quick order</div>
  </div>
</div>
 类似资料:
  • 我正在尝试操作上面的HTML代码示例。这是实际HTML代码的简化版本。 这个脚本隐藏了所有的div,类'row'位于两个div之间,这两个div被称为崩溃组和崩溃组。 但是,我只想在任何一行包含至少一个类为“label passive”的span时,隐藏类为“Row”的div元素。 当存在一个带有被动标签的范围时,仅仅隐藏任何行div是不够的。在这些collapsegroup div之外,可能有一

  • 在一个有2%左右填充的容器中,我有两个div框。左侧div框的宽度固定为200px,右侧边距固定为60px。我想要正确的div调整它的宽度,浏览器窗口变小/变大。我如何实现红色框的宽度(独立于浏览器的宽度)一直填充到容器的rigth填充开始,而蓝色div保持其200px? JSfiddle:http://jsfidle.net/3vhrst19/3/ HTML: CSS:

  • 我目前的问题是,我正在用一些小文章制作新闻提要。所有的文章都有相同的类,这就是逻辑。每篇文章的右上角都有一个向下的箭头。 我希望如果人们单击箭头(这是一个. svg文件),内容会展开。容器的高度为78px,如果单击按钮,它应该会展开,因此高度应该是自动的。 我的问题是我不知道用什么语言做什么。jQuery或者我读到的是JS。因为如果我正常点击按钮,这个类的所有内容都会扩展,或者得到自动高度的css

  • 如何(使用PHP)从具有特定类的div中删除样式属性?因为“拖累” 我知道我可以在“拖动”后用JavaScript删除样式属性

  • 我有一个带有类的并且在它里面有一个另一个带有类的。我从数据库中提取了数据,并将提取的数据转换为。我使用了那个json格式的数据,并在那个带有类的div上生成了一些信息,这些信息是。 我第一个jquery代码用类在div中追加数据,该代码如下所示:- 在上面,我首先获得了json格式的数据,并进行了一些验证,然后最后我用类在第一个div中附加了第二个div并用类。 我们知道是一个附加的div,我想在

  • 我的钢笔 http://codepen.io/helloworld/pen/dqgdk 我想垂直对齐包装器div内部的3个div。3个div中的每一个都应该有33%的高度。我可以使布局工作时,div有一个33px的高度,但我需要它的百分比,因为包装div的高度动态变化。有时是100px的高度,有时是70px等等。 我只想所有3总是正确的使用百分比高度对齐。 将divs与百分比对齐的方法是什么? H