我有一个带有信息页面和编辑页面的应用程序 信息页面显示信息。 在编辑页面中我有选择框等的字段等
我想为两者使用相同的代码。所以我试过
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>
答案 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'
。