Выделенный элемент не имеет массива 'options' - PullRequest
1 голос
/ 12 января 2010

Это делает мою голову в!

У меня есть элемент 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>

Мне не удалось найти какую-либо информацию по этому поводу, какие-либо советы приветствуются.

Ответы [ 2 ]

8 голосов
/ 12 января 2010
if($'#menu option').length > 0) {
    $("#message").text("Success!");
}
else {
    $("#message").text("Fail :<");
}
2 голосов
/ 12 января 2010

Функция $ в jQuery возвращает объект jQuery, а не базовый элемент DOM. Если вы хотите использовать базовый элемент DOM, используйте $('#menu').get(0) или $('#menu')[0]. Более того, используйте методы jQuery для доступа к атрибутам или значению элементов.

var selected = $('#menu').value();
var selectedText = $('#menu option:selected').text();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...