使用jQuery和select元素隐藏动态类

时间:2014-09-23 20:27:24

标签: javascript php jquery

嘿伙计们我试图根据它的类来隐藏我的页面上的div,我也有一个包含选项的select元素。

因此,您知道我有一个列出数据库结果的模板,然后使用while循环来循环每一行,我的数据库中有一列包含每行的所有'Make'。

以下是该代码的示例:

<?php while($row = $results->fetch(PDO::FETCH_ASSOC))
      {
      echo '
        <div class="listing-container ' . $row["Make"] . '">
          <a href="carpage.php"><h3 class="model-listing-title clearfix">'.$row["Make"].' '.$row["Model"].' '.$row["Variant"].'</h3></a>
          <h3 class="price-listing">£'.number_format($row['Price']).'</h3>
        </div>
        <div class="listing-container-spec">
         <img src="'.(explode(',', $row["PictureRefs"])[0]).'" class="stock-img-finder"/>
          <div class="ul-listing-container">
            <ul class="overwrite-btstrp-ul">
              <li class="diesel-svg list-svg">'.$row["FuelType"].'</li>
              <li class="saloon-svg list-svg">'.$row["Bodytype"].'</li>
              <li class="gear-svg list-svg">'.$row["Transmission"].'</li>
              <li class="color-svg list-svg">'.$row["Colour"].'</li>
            </ul>
          </div>
          <ul class="overwrite-btstrp-ul other-specs-ul h4-style">
            <li>Mileage: '.number_format($row["Mileage"]).'</li>
            <li>Engine size: '.$row["EngineSize"].'cc</li>
          </ul>
          <button href="#" class="btn h4-style checked-btn hover-listing-btn"><span class="glyphicon glyphicon-ok"></span> History checked 
          </button>
          <button href="#" class="btn h4-style more-details-btn hover-listing-btn tst-mre-btn"><span class="glyphicon glyphicon-list"></span> More details 
          </button>
          <button href="#" class="btn h4-style test-drive-btn hover-listing-btn tst-mre-btn"><span class="test-drive-glyph"></span> Test drive 
          </button>
          <h4 class="h4-style listing-photos-count"><span class="glyphicon glyphicon-camera"></span> 5 More photos</h4>
        </div>
          ';
      } ?>

记下这个div“”,它包括类中SQL行的make。

以下是我的选择元素的示例:

<select class="form-control select-box">
             <option value="make-any">Make (Any)</option>
             <?php while($make = $filterres->fetch(PDO::FETCH_ASSOC))
             {
             echo '
             <option value='.$make["Make"].'>'.$make["Make"].'</option>
             ';
             } ?>
</select>

所有'Make''都是循环的,不显示重复。

我现在正在使用这个jQuery隐藏所有被称为'AUDI'的类。

var myContainers = $("div[class^='listing-container ']").not(".listing-container.AUDI");
myContainers.hide();
myContainers.next(".listing-container-spec").hide();

我现在想要select元素来确定显示'Make'的内容,例如,如果用户选择BMW我只想要拥有BMW类别的列表容器div。

有人能告诉我一个如何运作的例子并向我解释一下吗?我对JS仍然非常高兴。

1 个答案:

答案 0 :(得分:2)

$(document).ready(function(){
  $('.form-control').change(function(){
    var make = $(this).val();
    if(make != 'make-any'){
      $('.makes').hide();
      $('.'+make).show();
      } else {
        $('.makes').show();
        }
    });
  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="form-control select-box">
             <option value="make-any">Make (Any)</option>
             <option value='BMW' selected>BMW</option>
              <option value='AUDI'>AUDI</option>
</select>
<div class="BMW makes">BWM Stuff</div>
<div class="AUDI makes" style="display: none;">AUDI Stuff</div>