Не могу разобраться с .prev()
Есть код на странице для теста:
<input class="prev_max" /> <input /> <input id="test" onblur="select_prev_tr_tale(this.id)" /> Если делаю так function select_prev_tr_tale(id){ //Редактирует предыдущий input MAX test = $('#'+id).prev(); console.log(test); } Все ок! Выбирает <input /> Но если делаю так function select_prev_tr_tale(id){ //Редактирует предыдущий input MAX test = $('#'+id).prev(".prev_max"); console.log(test); } Не выбирает ничего, хотя должен выбрать <input class="prev_max" /> Или я чего то не догоняю? |
Alex_dark74,
Ну вы посмотрите какой элемент у вас выбирает? Непонятно что у вас за блок с #+id. Ссылка .prev() Можете использовать test = $('#'+id).prevAll(".prev_max"); PS: отформатируйте пожалуйста код. |
function select_prev_tr_tale(id){ //Редактирует предыдущий input MAX
test = $('#'+id).prev(".prev_max"); console.log(test); } |
Alex_dark74,
Я вам написал, попробуйте выбирать prevAll(). prev() выбирает предыдущий элемент. У вас идут три inputa подряд, а вам нужен первый. Используйте prevAll(). |
мне нужен не первый а предыдущий с слассом ".prev_max"
|
Alex_dark74,
prev возвращает только непосредственно предыдущий родственный элемент, а не все родственные элементы. <script src="http://code.jquery.com/jquery-latest.min.js"></script> <input class="prev_max" /> <input /> <input id="test" type="text" /> <script> $(function () { $('#test').on('blur', function (e) { $(this).prevAll('.prev_max').focus(); }) }) </script> |
Спасибо за отклики ребята.
.prevAll('.prev_max') работает но не так как мне нужно. допустим есть <input class="prev_max" id="test1" onblur="select_prev_tr_tale(this.id)" /> <input class="prev_max" id="test2" onblur="select_prev_tr_tale(this.id)" /> <input class="prev_max" id="test3" onblur="select_prev_tr_tale(this.id)" /> при использовании функции на самом нижнем input с id="test3" выбираются все input-ы с классом prev_max до с последнего input, тоесть: При отработке функции с id="test2" - выбирается id="test1", При отработке функции с id="test3" - выбирается id="test2",id="test1", а мне нужен только 1 предыдущий id="test2". |
Заметил такую штуку!
если сделать так: <input class="prev_max" id="test1" onblur="select_prev_tr_tale(this.id)" /> <input class="prev_max" id="test2" onblur="select_prev_tr_tale(this.id)" /> <input class="prev_max" id="test3" onblur="select_prev_tr_tale(this.id)" /> function select_prev_tr_tale(id){ //Редактирует предыдущий input MAX test = $('#'+id).prev('.prev_max'); console.log(test); } то все работает а если поместить в таблицу <table> <tr> <td><input class="prev_max" id="test1" onblur="select_prev_tr_tale(this.id)" /></td> <td><input class="prev_max" id="test2" onblur="select_prev_tr_tale(this.id)" /></td> <td><input class="prev_max" id="test3" onblur="select_prev_tr_tale(this.id)" /></td> </tr> </table> то нет. |
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 14:16. |