2010-01-11 240 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();