2010-01-11 124 views
1

這是我的頭!選擇元素沒有「選項」數組

我有一個選擇元素與幾個選項,但我不能操縱或訪問任何選項,因爲顯然'選項'數組不存在。

我已經重新創建一個簡單的HTML文檔中的問題:(原項目是ASP MVC)

<html><head><title>test test test</title> 
<script type="text/javascript" src="jquery-1.3.2.min.js"></script> 
<script type="text/javascript" > 
function checkMenu() { 
if($("#menu").options) { 
    $("#message").text("Success!"); 
} 
else { 
    $("#message").text("Fail :<"); 
} 
} 
</script> 
</head> 
<body> 
    <select id="menu" name="menu"> 
     <option>qwerty</option> 
     <option>uiop</option> 
     <option>asdf</option> 
     <option>ghjkl</option> 
    </select> 
    <a href="#" onclick="checkMenu()">Clicker!</a> 
    <div id="message">message</div> 
</body> 
</html> 

我沒有設法找到這個任何信息,任何提示讚賞。

+0

檢查蒙克的答案在下面。它會爲你工作。你遇到的問題是因爲.options屬性不存在。你必須記住關於jQuery的東西,它包裝了DOM元素。它的所有屬性都是通用的,比如val,text,html等.options不存在。你可以通過$(「menu」)迭代這些項目。each(function(){//對每個項目做一些事情}}; – 2010-01-11 21:21:56

+0

同時查看這個頁面瞭解使用選擇和jQuery的一些基本細節: http://elegantcode.com/2009/07/01/jquery-playing-with-select-dropdownlistcombobox/ – 2010-01-11 21:27:26

+0

感謝您的回覆,清理它! – elwyn 2010-01-11 22:12:52

回答

8
if($'#menu option').length > 0) { 
    $("#message").text("Success!"); 
} 
else { 
    $("#message").text("Fail :<"); 
} 
2

$函數jQuery中返回jQuery對象,而不是基本的DOM元素。如果您想使用底層DOM元素,請使用$('#menu').get(0)$('#menu')[0]。更妙的是,使用jQuery方法來訪問元素屬性或值。

var selected = $('#menu').value(); 
var selectedText = $('#menu option:selected').text();