繁体   English   中英

显示div何时获得选择或选项

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM