Значение Javascript из поля отображается как [текст объекта] при добавлении в другую строку - PullRequest
0 голосов
/ 12 января 2012

Использование jQuery 1.6.2

HTML, с которым я работаю

<select id="langId">
    <option value="0">Argentina - Spanish</option>
    <option value="1">Brazil - Brazil English</option>
</select>

Мне нужно получить строку выбранного значения (например: «Brazil - Brazil English»)

Что я сейчас использую:

var langVal = $('#langId option[value="' + $('#langId').val() + '"]').contents();

Это работает до определенной степени.Это дает мне что-то вроде ["Brazil - Brazil English"], к которому я могу получить доступ по адресу langVal[0]

Если я сделаю console.log(langVal[0]), тогда я получу то, что ищу "Brazil - Brazil English", но если я сделаю что-то вроде console.log(("The value is: " + langVal[0]));, тогдая вижу The value is: [object Text]

Я понятия не имею, что вызывает появление этого [object Text] вместо моего значения.Я пробовал метод toString (), но он не помогает.

Конечная цель - получить текстовое значение выбранного объекта в файл cookie.Атрибут числового значения в элементах опции должен оставаться неизменным.

Ответы [ 2 ]

1 голос
/ 12 января 2012

Вместо использования $('#langId option[value="' + $('#langId').val() + '"]').contents() вы хотите использовать $('#langId option[value="' + $('#langId').val() + '"]').html() или $('#langId option[value="' + $('#langId').val() + '"]').text()

Функция contents фактически создает новый объект jQuery, а не текстовое значение, которое вы хотите.

1 голос
/ 12 января 2012
$("#langId option:selected").text()

Это даст вам текст текущей выбранной опции в списке выбора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...