@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?
  • Вопрос задан
  • 233 просмотра
Решения вопроса 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());
    });
   });
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
28 нояб. 2024, в 14:38
250000 руб./за проект
28 нояб. 2024, в 14:33
70000 руб./за проект
28 нояб. 2024, в 14:18
1500 руб./за проект