2017-09-26 55 views
1

我有一個應用程序的信息頁面和編輯頁面 信息頁面顯示的信息。 在編輯頁面我有選擇框等的字段等當div得到選擇或選項時顯示

我想爲兩者使用相同的代碼。所以,我想

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

你能告訴我們一些HTML嗎?我還不太清楚 – lumio

回答

1

我想你需要的東西是這樣的:

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

如果您還沒有一個選項,長度爲0(因此假)

+0

THNX THIS爲您工作 – namzaG

1

首先,你可以給他們不同的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'

+0

THNX – namzaG

相關問題