javascript - JavaScript 更改元素上的类以用于级联下拉列表
问题描述
我有一个网站,它使用 PHP 来查看 SQL Server 上的各种表,这些表为下拉列表提供了它们的数据。我希望创建一个级联下拉列表,下面是提供 HTML 的代码。
div class="col-md-4" class="form-control" id="Type">
<select>
<?php foreach ($conn->query($sqlType) as $row){echo '<option
class="'.$row['ShortCode'].'">'.$row['Type'].'</option>';} ?>
</select>
</div>
下面是结果
<option class=""></option>
<option class="Deal">Deal</option>
<option class="Price">Price</option>
<option class="Promo">Promo</option>
<option class="Promo">Promo</option>
<option class="LTD">Long term Deal</option>
在另一个下拉列表中,我们希望隐藏第一个下拉列表中未选择的选项。
<div class="col-md-4" class="form-control" id="Category">
<select">
<?php foreach ($conn->query($sqlCategory) as $row){echo '<option
class="'.$row['Type'].' hide">'.$row['Category'].'</option>';} ?>
</select>
</div>
<select">
结果如下。
<option class=" hide"></option>
<option class="Deal hide">Exceptional / Clearance</option>
<option class="Promo hide">Invoice</option>
<option class="Promo hide">Retro</option>
<option class="Listing hide">New</option>
<option class="Listing hide">Delisting</option>
<option class="Price hide">Increase</option>
<option class="Price hide">Decrease</option>
<option class="LTD hide">Off Invoice (ZXPN Only)</option>
<option class="LTD hide">Retro (No ZR88)</option>
这个想法是,例如,如果在第一个下拉列表中选择“列表”,则 JavaScript 或 JQuery 脚本将从中删除“隐藏”类;
<option class="Listing hide">
解决方案
您在第一个下拉列表中没有“列表”,但为什么不在第一个下拉列表中使用 value,则无需删除类
$(function() {
$("#Type").on("change","select", function() {
var $cat = $("#Category>select");
$cat.find("option:gt(0)").hide(); // keep first option
$("." + this.value, $cat).show();
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="col-md-4" class="form-control" id="Type">
<select>
<option value=""></option>
<option value="Deal">Deal</option>
<option value="Price">Price</option>
<option value="Promo">Promo</option>
<option value="Listing">Listing</option>
<option value="LTD">Long term Deal</option>
</select>
</div>
<div class="col-md-4" class="form-control" id="Category">
<select>
<option class=""></option>
<option class="Deal">Exceptional / Clearance</option>
<option class="Promo">Invoice</option>
<option class="Promo">Retro</option>
<option class="Listing">New</option>
<option class="Listing">Delisting</option>
<option class="Price">Increase</option>
<option class="Price">Decrease</option>
<option class="LTD">Off Invoice (ZXPN Only)</option>
<option class="LTD">Retro (No ZR88)</option>
</select>
</div>
推荐阅读
- python - python中的并行执行失败?
- r - 在R中同时组合几对列(包含数字和NA)
- php - i18n::setLocale cakephp 3.6
- ios - 使用 Swift 捆绑领域文件的正确方法
- primefaces - Ajax 调用重复 HTML 输出
- sqlite - Sqlite pcl xamarin 不会导致查询宽度不在
- html - 将自己的 HTML 添加到 doxygen CHM
- asp.net - 悬停时可更改的导航栏内容(不在导航栏上)
- html - CSS - 无法使 CSS 类正常工作,但内联样式确实有效
- c - 进程在 Malloc 或 File 上以返回值 3221225477 退出