2010-01-11 1 views
1

이것은 머리를 쓰고 있습니다!Select 요소에 'options'배열이 없습니다.

몇 가지 옵션이있는 select 요소가 있지만 옵션을 조작하거나 액세스 할 수 없습니다. 물론 'options'배열이 존재하지 않기 때문입니다.

나는 간단한 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")로 항목을 반복 할 수도 있습니다. 각각 (function() {// 각각에 뭔가를하십시오 ...}); –

+0

select 및 jQuery 작업에 대한 기본 내용은이 페이지를 참조하십시오. http://elegantcode.com/2009/07/01/jquery-playing-with-select-dropdownlistcombobox/ –

+0

답장을 보내 주셔서 감사합니다. 그걸 정리 했어! – elwyn

답변

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();