0
В последнее время я испытал некоторое странное поведение в jQuery. Там мой HTML код:jQuery возвращает prevObject вместо значения параметра
<select class="chosen-select">
<option value="35" data-lat="50.054371" data-lng="14.486067">Praha 10, Záběhlická 84 (Hobby car)</option>
<option value="36" data-lat="49.186535" data-lng="16.604361">Brno, Nové sady 30 (ecmarket.cz)</option>
</select>
есть мой JQuery код:
$('.chosen-select').on('change', function(evt, params) {
var currLat;
var currLng;
currLat = $('.chosen-select option:selected').attr('data-lat');
currLng = $('.chosen-select option:selected').attr('data-lng');
console.log($('.chosen-select option:selected').attr('data-lat'));
console.log($('.chosen-select option:selected').attr('data-lng'));
console.log($(currLat));
});
и есть журналы из консоли:
50.724499
15.169286
[prevObject: n.fn.init[1], context: document, selector: "50.724499"]
Когда я посмотрел вокруг, я обнаружил, что мой селектор ошибочен, а его нет в DOM. Но
1) почему первые два журнала выглядят нормально?
- Не правда ли, это немного странно?
2) как исправить это?
- Пробовал код вызова в $ (document) .ready (function() {});
Спасибо за любую помощь или информацию ребята.
Все выглядит хорошо для меня. [Вы увидите 'prevObject', когда вы не получили соответствие] (http://stackoverflow.com/questions/19697495/what-is-prevobject-and-why-is-my-selector-returning-that) , jQuery всегда даст вам объект, даже если ничего не соответствует. Это будет пустая коллекция с оберткой jQuery. –
Я уверен, что вы имели в виду 'console.log (currLat)', а не 'console.log ($ (currLat))'. Зачем вам передавать строку '" 50.724499 "' в jQuery ??? – Bergi
Селектор jQuery всегда возвращает объект, даже если значение, которое вы использовали для селектора, не возвратило никаких элементов. Это то, что вы видите на консоли, так как нет элемента для '$ ('50.054371')' –