@EVOSandru6

Как в jquery красиво получить доступ к родительскому this?

Такой фрагмент:

$('.exapmle-1 input').keyup(function()
{
   var value = $(this).val();
   $(this).parent().parent().find('td:gt(0)').each(function()
   {
       console.log(value);
   });
});


Можно ли заместо console.log(value); обратиться к родительскому this иначе, не создавая переменную value?
  • Вопрос задан
  • 203 просмотра
Решения вопроса 2
nazarpc
@nazarpc
Open Source enthusiast
Можно, но будет не лучше:

$('.exapmle-1 input').keyup(function()
{
   var f = function() {
       console.log($(this).val());
   };
   $(this).parent().parent().find('td:gt(0)').each(f.bind(this));
});

Приятнее такие штуки пишутся на CoffeeScript:
$('.exapmle-1 input').keyup ->
    $(this).parent().parent().find('td:gt(0)').each =>
        console.log $(this).val()
        return

Или LiveScript:
$('.exapmle-1 input').keyup ->
    $(this).parent().parent().find('td:gt(0)').each !~>
        console.log $(this).val()
Ответ написан
Комментировать
DexterHD
@DexterHD
Software Engineer, Teamlead, CTO
Равносильно представленному выше. Не обязательно выносить функцию в отдельную перемнную. Достаточно указать bind() после закрывающей скобки.
$('.exapmle-1 input').keyup(function() {
   $(this).parent().parent().find('td:gt(0)').each(function(){
       console.log($(this).val());
   }.bind(this));
});

В ES6 можно так:
$('.exapmle-1 input').keyup(() => {
   $(this).parent().parent().find('td:gt(0)').each(() => { 
            console.log($(this).val());
    });
   });
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
SummerWeb Ярославль
от 120 000 до 180 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
Market-place Ростов-на-Дону
от 100 000 до 200 000 ₽
24 июн. 2024, в 14:45
2500 руб./за проект
24 июн. 2024, в 14:39
2000 руб./в час
24 июн. 2024, в 14:07
2000 руб./за проект