![](/img/trans.png)
[英]Bootstrap Dropdowns and Popovers call parent element's hide function
[英]Show/hide an HTML element: better set Bootstrap 4's [hidden] attribute or call jQuery's .hide() function?
我目前正在使用Bootstrap 4,以及jQuery 3.1.1
我想在select
val更改时隐藏元素。 什么是最好的解决方案? 添加Bootstrap的[hidden]元素(参见Bootstrap:Migration to v4 )或调用jQuery的.hide()函数(参见jQuery的.hide() )?
var select = $("select[name=whatever]");
if (select.length) {
select.change(function() {
if (select.val() > 0) {
$("input[name=foobar]"); // TODO Hide this element
} else {
$("input[name=foobar]"); // TODO Show this element
}
});
}
有什么建议么?
首先,检查元素是否存在是多余的,因为jQuery容忍在不包含元素的选择器上调用方法。 您似乎也错过了代码中的一些引号,但我认为这只是问题中的错字。
其次,元素的value
以字符串形式提供,因此您需要将其解析为整数,否则在强制类型时可能会得到一些奇怪的结果。
从那里你可以简单地调用hide()
和show()
:
var $select = $('select[name="whatever"]').change(function() {
if (parseInt(this.value, 10) > 0) {
$('input[name="foobar"]').hide()
} else {
$('input[name="foobar"]').show();
}
}
您还可以通过仅使用toggle()
使用状态标志来设置元素的可见性,从而使此逻辑更简洁:
var $select = $('select[name="whatever"]').change(function() {
$('input[name="foobar"]').toggle(parseInt(this.value, 10) <= 0)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.