2011-09-16 129 views
1

我想隱藏下拉(選擇元素)使用隱藏,但不能夠。下面是我使用的jQuery代碼。jQuery隱藏()不工作

$('.myClass').find('select[name=xyz]').hide(); 

異常鉻:對象XYZ有沒有方法 '隱藏'


相應的HTML

<div class="myClass"> 
     <select id="xyz" name="xyz"> 
        <option>option1</option> 
        <option>option2</option> 
        </select> 
     <select id="123" name="123"> 
        <option>option3</option> 
        <option>option4</option> 
        </select> 
</div> 
+2

爲什麼不只是:'$('#xyz')。hide();'? – steveax

回答

1

編輯:我看到你現在編輯HTML在您的文章,並添加了name屬性最初失蹤。您的HTML和javascript在this jsFiddle中適用於我,因此如果它不適合您,那麼這是因爲您的頁面中存在其他錯誤或重複的ID或類似內容。即使如此,我建議你只是使用下面我建議的更簡單的形式,因爲它更簡單,更快,更簡單。

以前的答案OP之前被編輯:

我看不出有什麼name屬性爲您匹配。如果你想獲得select標籤與xyz ID,然後使用此:

$("#xyz").hide(); 

標識多是在網頁中唯一的,這樣你可以直接解決這個問題,沒有必要做所有其他的東西找到它。如果你是這樣做的,因爲你的ID在頁面中不是唯一的,那麼你必須解決這個問題,因爲你將在不同的瀏覽器中得到不可預知的結果,並且出現衝突的ID。

+0

我錯過了它的帖子,其實名稱有 – void1916

+0

仍然使用我們建議的ID。它速度更快並且可以工作。實際上,您的新版HTML似乎對Chrome瀏覽器中的代碼正常工作。在這裏看到:http://jsfiddle.net/jfriend00/qaJff/ – jfriend00

+0

OP編輯他的帖子,並添加了名稱;) – roselan

0

你有選擇標記爲xyz的id。

$('.myClass').find('select#xyz').hide(); 

或更好,但

$('#xyz').hide(); 

jQuery [attribute=value]選擇搜索特定屬性。

jQuery id selector將搜索元素的ID。

+0

爲什麼所有這些額外的東西,當你需要的是'$(「# XYZ「)隱藏();'?這是一個ID。它們在頁面中直接可尋址且唯一。 – jfriend00

+0

你的正確只是有一個腦屁。謝謝 –

0

你有沒有名字的選擇

$('.myClass #xyz').hide(); 

必須添加的名稱,如果你曾經計劃提交。最後,請注意:ID和屬性一般不應以數字開頭,而應以字母開頭。

<div class="myClass"> 
     <select name="xyz" id="xyz"> 
        <option>option1</option> 
        <option>option2</option> 
        </select> 
     <select name="abc" id="abc"> 
        <option>option3</option> 
        <option>option4</option> 
        </select> 
</div>