Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.02.2016, 11:40
Аспирант
Отправить личное сообщение для Alex_dark74 Посмотреть профиль Найти все сообщения от Alex_dark74
 
Регистрация: 10.04.2012
Сообщений: 72

Не могу разобраться с .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, 20.02.2016 в 12:48.
Ответить с цитированием
  #2 (permalink)  
Старый 20.02.2016, 12:18
Аватар для AciDWarrioR
Кандидат Javascript-наук
Отправить личное сообщение для AciDWarrioR Посмотреть профиль Найти все сообщения от AciDWarrioR
 
Регистрация: 11.11.2015
Сообщений: 136

Alex_dark74,
Ну вы посмотрите какой элемент у вас выбирает? Непонятно что у вас за блок с #+id. Ссылка .prev()
Можете использовать
test = $('#'+id).prevAll(".prev_max");

PS: отформатируйте пожалуйста код.

Последний раз редактировалось AciDWarrioR, 20.02.2016 в 12:25.
Ответить с цитированием
  #3 (permalink)  
Старый 20.02.2016, 12:46
Аспирант
Отправить личное сообщение для Alex_dark74 Посмотреть профиль Найти все сообщения от Alex_dark74
 
Регистрация: 10.04.2012
Сообщений: 72

function select_prev_tr_tale(id){ //Редактирует предыдущий input MAX
test = $('#'+id).prev(".prev_max");
console.log(test);
}
Ответить с цитированием
  #4 (permalink)  
Старый 20.02.2016, 12:51
Аватар для AciDWarrioR
Кандидат Javascript-наук
Отправить личное сообщение для AciDWarrioR Посмотреть профиль Найти все сообщения от AciDWarrioR
 
Регистрация: 11.11.2015
Сообщений: 136

Alex_dark74,
Я вам написал, попробуйте выбирать prevAll().
prev() выбирает предыдущий элемент. У вас идут три inputa подряд, а вам нужен первый. Используйте prevAll().
Ответить с цитированием
  #5 (permalink)  
Старый 20.02.2016, 14:33
Аспирант
Отправить личное сообщение для Alex_dark74 Посмотреть профиль Найти все сообщения от Alex_dark74
 
Регистрация: 10.04.2012
Сообщений: 72

мне нужен не первый а предыдущий с слассом ".prev_max"
Ответить с цитированием
  #6 (permalink)  
Старый 20.02.2016, 17:28
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

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>
Ответить с цитированием
  #7 (permalink)  
Старый 20.02.2016, 20:30
Аспирант
Отправить личное сообщение для Alex_dark74 Посмотреть профиль Найти все сообщения от Alex_dark74
 
Регистрация: 10.04.2012
Сообщений: 72

Спасибо за отклики ребята.
.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".
Ответить с цитированием
  #8 (permalink)  
Старый 20.02.2016, 20:35
Аспирант
Отправить личное сообщение для Alex_dark74 Посмотреть профиль Найти все сообщения от Alex_dark74
 
Регистрация: 10.04.2012
Сообщений: 72

Заметил такую штуку!
если сделать так:
<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>

то нет.

Последний раз редактировалось Alex_dark74, 20.02.2016 в 20:38.
Ответить с цитированием
  #9 (permalink)  
Старый 21.02.2016, 01:11
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Alex_dark74
а если поместить в таблицу
Гениальное открытие, ибо теперь не input cледуют друг за другом, а td
Ответить с цитированием
  #10 (permalink)  
Старый 22.02.2016, 09:42
Аспирант
Отправить личное сообщение для Alex_dark74 Посмотреть профиль Найти все сообщения от Alex_dark74
 
Регистрация: 10.04.2012
Сообщений: 72

Сообщение от Deff Посмотреть сообщение
Гениальное открытие, ибо теперь не input cледуют друг за другом, а td
Это понятно. Но я то пытаюсь выбрать с использованием определенного класса. а в td класса нет.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не могу разобраться с форматом даты frolgp Элементы интерфейса 8 23.01.2016 08:18
Не могу разобраться kktak Элементы интерфейса 1 15.06.2015 08:44
[node-inspector] не могу разобраться, как им пользоваться Omnium Gatherum AJAX и COMET 1 21.11.2013 18:19
Не могу разобраться с двумерным массивом pro_xaoc jQuery 6 10.06.2012 12:11
Не могу разобраться с setTimeout bazilio2010 Общие вопросы Javascript 3 14.01.2012 00:17