Не могу разобраться с .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>
то нет. |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
test = $('#'+id).parent('td').prev('td').children('.prev_max:first');
|
vanished
|
| Часовой пояс GMT +3, время: 21:32. |