На основании вашего комментария, похоже, что фокус сместился, я думаю, что может происходить то, что клавиатура остается открытой для следующего поля ввода текста. Если ваша клавиша возврата является клавишей «Next», то возвращение YES для textFieldShouldReturn: сделает следующий textField первым респондентом и оставит клавиатуру видимой.
$(this).parents('td').children('span:last');
должно помочь.
Править
Я не заметил вашего желания иметь дело не только с ближайшими детьми. Если вам нужны все потомки, вы должны использовать
$(this).parents('td').find('span:last')
. Я предполагал, что span
всегда будет дочерним по отношению к td
.
Final Edit
Ради потомков (и чтобы людям было легче найти этот ответ в будущем), поскольку это уже было принято в качестве ответа, Бен предложил более элегантное решение в своем ответе, который я собираюсь поместить здесь:
$(this).closest('td').find('div,span').filter(':last')
Как Бен сказал, что для работы closest ()
вы должны использовать JQuery 1.3. Хорошая работа! : -)
В этом случае я предпочитаю использовать ближайших , а не родителей . Вам не нужно беспокоиться о наличии двух или более элементов «td» в родословной.
$(this).closest('td').children("span:last")
Ищете функцию find (expr) , которая ищет все узлы-потомки:
$(this).closest('td').find('span:last')
Edit: Для выбора последнего div
или span
:
$(this).closest('td').find('div,span').filter(':last')
Edit 2: Марк отлично замечает использование closest () вместо parent () , но имейте в виду, что для этого вам необходимо использовать jQuery 1.3.