div选择或选项时显示

时间:2017-09-26 09:16:16

标签: javascript jquery

我有一个带有信息页面和编辑页面的应用程序 信息页面显示信息。 在编辑页面中我有选择框等的字段等

我想为两者使用相同的代码。所以我试过

if($('#product').has('option'))
{
    console.log('hasSelect')
}
else{
    console.log('NOSELECTNO')
    }

在单页中没有选项或选择avaible 但在编辑中它是。

我如何确保它能够正常工作(为什么这不起作用)

编辑尝试了这个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 infopage

<div id= product>
    <div>only information</div>
    <div>only text </div>
</div>

2 个答案:

答案 0 :(得分:1)

我认为你需要这样的东西:

if ($("#product option").length )

如果您没有选项,则长度将为0(因此为假)

答案 1 :(得分:1)

首先,您可以为他们提供不同的ID,或类似.info.edit的类,然后只需检查$('#product').hasClass('info')即可。我不建议检查特定的后代以确定元素,因为您希望您的代码尽可能灵活,并且如果您决定在将来向信息页面添加select元素,例如,过滤掉特定项目以获取信息,您的代码完全中断。

其次,为什么你的代码不起作用,是这样。

var attr = $('#product div').attr('select');

select不是属性,而是小孩。使用children('select')(如果是直接孩子)或find('select')(如果不是直接孩子)。

作为旁注,您可以将typeof attr !== typeof undefined简化为typeof attr !== 'undefined',因为我们已经知道typeof undefined正在返回'undefined'