[英]How to show a div when a select option is selected and hide when unselected?
[英]Show when div got select or option
我有一个带有信息页面和编辑页面的应用程序,信息页面显示信息。 在编辑页面中,我有带有选择框等的字段
我想为两者使用相同的代码。 所以我尝试了
if($('#product').has('option'))
{
console.log('hasSelect')
}
else{
console.log('NOSELECTNO')
}
在单个页面中没有选项或选择可用,但在编辑中是可用的。
我如何确保它会起作用(为什么不起作用)
编辑尝试了这个2:
var attr = $('#product div').attr('select');
if (typeof attr !== typeof undefined && attr !== false) {
console.log("welmetselect")
}
else
{
console.log("zonderselect")
}
编辑:HTML
<div id= product>
<div>some more divs</div>
<div> in 1 of the div we have <select><option></option></select></div>
</div>
和html信息页
<div id= product>
<div>only information</div>
<div>only text </div>
</div>
我认为您需要这样的东西:
if ($("#product option").length )
如果没有选项,则长度为0(因此为false)
首先,您可以给它们提供不同的ID,或提供类似.info
和.edit
的类,然后只需检查$('#product').hasClass('info')
。 我不建议仍然检查特定的后代以标识元素,因为您希望代码尽可能地灵活,并且如果您决定将来在信息页面中添加选择元素,例如过滤掉特定项目以获取信息,您的代码将完全中断。
其次,这是为什么您的代码无法正常工作的原因。
var attr = $('#product div').attr('select');
select
不是属性,而是一个孩子。 使用children('select')
(如果它是直子)或find('select')
(如果它不是直子)。
作为附带说明,您可以将typeof attr !== typeof undefined
简化为typeof attr !== 'undefined'
因为我们已经知道typeof undefined
返回'undefined'
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.