Я не могу получить значение из поля ввода - PullRequest
0 голосов
/ 07 августа 2011

У меня есть пара полей ввода, которые создаются динамически, а затем заполняются.Когда я пытаюсь прочитать их, я просто получаю «неопределенный» ответ.Это меня бесит, потому что один и тот же код работает везде в других местах моего веб-приложения.Код, который я использую для захвата значения, выглядит следующим образом:

$('#box1.1').val()

Так что это ДОЛЖНО вернуть значение элемента с id = "box1.1", я прав?:

>>> $('#box1.1').val()
undefined

И да, я использую jQuery.Версия 1.6.2.

Заранее спасибо!

Ответы [ 5 ]

4 голосов
/ 07 августа 2011

Обычно лучше думать о функции $ в jQuery как о чем-то, что принимает список CSS-селекторов, разделенных запятыми. В CSS . означает «объект с именем класса ...». Поэтому jQuery ищет что-то под идентификатором box1, который имеет класс 1. В основном, в этом примере:

<div id="box1"><span class="1"></span></div>

jQuery вернул бы диапазон. В этом примере:

<div id="box1.1"><span class="not_1"></span></div>

jQuery обязательно возвращает undefined.

Поскольку ваш идентификатор вызывает конфликты в CSS, лучше всего просто удалить . из названий классов. Обычно предпочтительным является _ или -.

4 голосов
/ 07 августа 2011

Вы должны выйти из точки с двумя обратными слешами, чтобы jQuery не рассматривал .1 как класс.

$('#box1\\.1').val();

http://docs.jquery.com/Frequently_Asked_Questions#How_do_I_select_an_element_by_an_ID_that_has_characters_used_in_CSS_notation.3F

2 голосов
/ 07 августа 2011

Это недопустимый идентификатор (по крайней мере, на языке jQuery): "box1.1". Вы не можете иметь точку в идентификаторе, так как это может сбить с толку механизм выбора jQuery, так как точка обычно означает имя класса.

Вы можете изменить идентификатор на «box1_1» и попробовать.

Вот демонстрационная скрипка: http://jsfiddle.net/UnUYP/

1 голос
/ 07 августа 2011

Нет, что ищет элемент с идентификатором "box1" с примененным классом с именем "1" ... В селекторе jquery # относится к селектору идентификаторов (селектор CSS) и к. ссылается на имя класса. Рекомендуется избегать использования периодов для значений идентификаторов

1 голос
/ 07 августа 2011

В jQuery период имеет особое значение. Они используются для префиксов селекторов классов. JQuery не может узнать, что .1 является частью идентификатора, а не какого-то CSS-класса с именем 1. Вместо этого вы должны использовать символ, который не имеет специального значения, например подчеркивание.

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