дайте ссылку на теорию
Вот опять столкнулся с почти с такой же проблемой, как вчера. У меня есть мультипл селект с id="categories"... я хочу при каждом change заносить выбранные значения заносить в аrr[].
Так как задаю почти одинаковый вопрос как и вчера, спрашиваю следующие скажите какой раздел теории или какие функции надо посмотреть в интернете что бы уметь считывать значения с объекта. Спасибо |
Или здесь надо ставить инфдификаторы на option и считывать с каждого с помощью value и заносить в массив? Правда так как список генерируется, это не совсем удобно, но возможно... Выбрать такой путь?
|
Ну ты и наркоман...
<select multiple="" size="3"> <option value="v1">Value 1</option> <option value="v2">Value 2</option> <option value="v3">Value 3</option> </select> <script src="//code.jquery.com/jquery-latest.min.js"></script> <script> $('select').change(function(){ var values = $(this).val(); alert(values); }); </script> |
А я писал так:
$("#categories").change(function(){ //тут смысл большой не меняется, правильно? var values = this.val(); //вот здесь у меня вылетала ошибка alert(values); }); Что мне поискать в интернете, что бы я понял почему надо писать $(this) а не просто this, как ты использовал в прошлом примере. Читаю сейчас параллельно учебник по JS, но кажется тут чисто JQ уже. В любом случае ещё раз спасибо. |
Для начала уясни, что $ - это функция. В качестве аргумента принимает селектор или DOM-элемент, и возвращает jquery-коллекцию, которая имеет различные методы, в том числе и val() .
Список методов смотри на http://api.jquery.com или мож че на русском найдешь. То, что this внутри обработчиков, навешанных методами jquery указывает на голый DOM-элемент, а не на jquery-обертку - это нужно просто запомнить. И да, пока не освоишь базовый JS, нативные методы для работы с DOM - забудь про jQuery, иначе так и будешь вечно путаться. |
К примеру вот код jquery, отвечающий за создание списка значений селекта:
get: function( elem ) { var value, option, options = elem.options, index = elem.selectedIndex, one = elem.type === "select-one" || index < 0, values = one ? null : [], max = one ? index + 1 : options.length, i = index < 0 ? max : one ? index : 0; // Loop through all the selected options for ( ; i < max; i++ ) { option = options[ i ]; // oldIE doesn't update selected after form reset (#2551) if ( ( option.selected || i === index ) && // Don't return options that are disabled or in a disabled optgroup ( jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) && ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { // Get the specific value for the option value = jQuery( option ).val(); // We don't need an array for one selects if ( one ) { return value; } // Multi-Selects return an array values.push( value ); } } return values; } |
Часовой пояс GMT +3, время: 16:48. |