javascript - 显示div选定选项包含特定文本
问题描述
如果用户从列表中选择包含C-D
(在这种情况下无关紧要的值或标签)的任何选项,我想显示下一个选项列表。我尝试使用 contains() 选择器,但某处出现错误。
我的 HTML 结构:
<script>
$(function () {
$("#choose-material").change(function() {
var val = $(this).val();
if(val:contains('C-D')) {
$("#choose-size").show();
}
});
});
</script>
#choose-size {display: none;)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="material-type" id="choose-material">
<option value="C-D">C-D</option>
<option value="VV_C-D">VV_C-D</option>
<option value="VV_C-B">VV_C-B</option>
<option value="B_C-D">B_C-D</option>
<option value="GL_WW">GL_WW</option>
</select>
<select name="material-size" id="choose-size">
<option value="Small">Small</option>
<option value="Medium">Medium</option>
<option value="Big">Big</option>
</select>
解决方案
选择:contains()
器旨在用于 jQuery 对象。要检查val
字符串是否包含C-D
,您可以改用indexOf()
.
另请注意,您可以通过使用toggle()
并提供布尔结果作为参数来简化逻辑,该参数将依次显示或隐藏给定元素。最后,请注意您的 CSS 有一个尾随)
而不是}
.
说了这么多,试试这个:
$(function() {
$("#choose-material").change(function() {
$("#choose-size").toggle($(this).val().indexOf('C-D') != -1);
}).change();
});
#choose-size {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="material-type" id="choose-material">
<option value="C-D">C-D</option>
<option value="VV_C-D">VV_C-D</option>
<option value="VV_C-B">VV_C-B</option>
<option value="B_C-D">B_C-D</option>
<option value="GL_WW">GL_WW</option>
</select>
<select name="material-size" id="choose-size">
<option value="Small">Small</option>
<option value="Medium">Medium</option>
<option value="Big">Big</option>
</select>
推荐阅读
- c# - 使用 Restsharp 发布 json 文件
- sql - 如何计算不同的值以排除值?
- ios - 如何设置 UIDatePicker 以显示今天及以后的日期?
- python - 仅当包含特定工作表时,将目录中的所有 excel 文件附加到数组
- angular - 如何在Angular 9中使用“延迟加载”使用子组件的事件属性绑定父组件
- foreach - 如何获取 SwiftUI ForEach 中的前一个元素?
- redis - MULTI 应该在 Redis 集群上工作吗?
- azure - 无法使用 CI/CD 在 ADF v2 中部署 TumblingWindowTrigger
- jenkins - 每晚和每次提交后运行 Jenkins 管道
- javascript - 滚动浏览网页时是否可以突出显示单行文本?与此类似,但是当您滚动时