如何根据jquery中的值打开子项
How to open child of child depending on a value in jquery
嗨,我知道这个问题被问了数千次,但我认为我在某个地方犯了一个错误
我尝试打开选择框,具体取决于孩子的值,如果子值是('COME_LATE')错误的打开子项。
;(function () {
$('#absence').on('change', function (e) {
var el = $(this);
if(el.val()==='None')
$('#absence_type').hide();
else {
$('#absence_type').show();
}
});
})();
;(function () {
$('#absence_type').on('change', function (e) {
var el = $(this);
if(el.val() !=='COME_LATE')
$('#Lessons').hide();
else {
$('#Lessons').show();
}
});
})();
<div class='col-xs-12 col-sm-3'>
<select id="absence" class="form-control">
<option value="NONE" selected>Student</option>
<option value="1">Student 1</option>
<option value="2">Student 2</option>
<option value="3"> Student 3</option>
</select>
</div>
<div class="col-xs-12 col-sm-3" id="absence_type" style="display:none">
<label>Absence Type</label>
<select class="form-control">
<option value="COME_LATE">COMELATE</option>
<option value="LEFT EARLY">LEFT EARLY</option>
<option value="DIDNT_COME">DIDNT_COME</option>
</select>
</div>
<div class="col-xs-12 col-sm-3" id="Lesson" style="display:none">
<label>Which Lesson</label>
<select class="form-control">
<option value="1">1</option>
<option value="2 EARLY">2 EARLY</option>
<option value="3">3</option>
</select>
</div>
当您在第二个组合框上进行选择时,您需要找到所选option
的值。您的代码中还有一个拼写错误 - 有关工作示例,请参阅更新的小提琴。
考虑到上述因素,您的 JQuery 将如下所示:
小提琴示例:
$('#absence_type').on('change', function (e) {
//Find the selected option.
var el = $(this).find('option:selected');
if(el.val() !=='COME_LATE')
$('#Lesson').hide();
else {
$('#Lesson').show();
}
});
请注意,您正在使用IIFE函数来包装jQuery代码。
这些与使用$(function()
或$(document).ready(function()
不同,两者都是同一件事
尝试更改
;(function () {
/* your jQuery code */
})();
自
$(function() {
/* your jQuery code */
});
此外,不能将窗体控件事件绑定到<div>
您的第二个选择器应该是$('#absence_type select')
$(document)
.ready(
function() {
$('#absence').on('change', function(e) {
var el = $(this);
if (el.val() === 'None')
$('#absence_type').hide();
else {
$('#absence_type').show();
}
});
$('#absence_type').on('change', function(e) {
var el = $(this);
alert($('#absence_type option:selected').val());
if ($('#absence_type option:selected').val() !== 'COME_LATE')
$('#Lesson').hide();
else {
$('#Lesson').show();
}
});
});
jsfiddle 在这里
相关文章:
- Jquery移除或更改JSON根元素
- jQuery/$如何既是函数又是'原型根'
- Jquery点击监听器没有在根路径Rails/Devise上启动
- jQuery.queue() 与使用回调函数完成某事有何不同
- Jquery $.get() 方法从根获取 url.为什么
- 如何在jQuery中生成无根的DOM元素
- 对可折叠菜单中根链接的效果/操作不活动 - 只是效果 - jQuery
- JQuery,从嵌套属性中访问对象的根属性
- 使用jquery查找xml中的根节点标记
- 错误:无效XML:jquery或将多个根转换为多个变量
- 检查根 jQuery 中是否存在文件夹
- 为什么要使用 jQuery $(window).ready(),它与 $(window).load() 有何不同
- 如何从jQuery Ajax返回false's的根函数
- 使用jQuery获取元素根的所有元素和属性
- 如何使用jQuery或Javascript返回到根HTML标记
- jQuery$.data()方法与直接将变量附加到DOM元素有何不同
- 将Jquery添加到我的服务器(localhost)中的根文件夹中
- 找不到/或无法使用 jquery 访问根文件夹 php
- Jquery和JS从何而来?
- 如何使用jQuery从视图模型中获取绑定根节点.blockUI上它,而AJAX张贴