Я правильно использую «это»? jQuery - PullRequest
0 голосов
/ 16 марта 2020

Я работаю над событием щелчка - где оно скрывает любые users, которые не совпадают со значением, по которому щелкнули Это фрагмент соответствующего HTML.

<div class="main">
        <section class="tweets">
        <div class="tweet">
           <p class="time">Sun Mar 15 2020 20:04:53 GMT-0700 (Pacific Daylight Time)</p>
           <p class="users" data="sharksforcheap">@sharksforcheap: </p>
           <p class="message">last night i formulated a life #sxsw</p></div>

Когда я вручную ввожу значение users в мой :contains, он работает нормально. Я нажму sharksforcheap, например, и он скроет все остальные users, которые не относятся к этому.

    $('.tweets').on('click', '.users', function(){

      var user = $(this).data('users');
      $('.tweet').not(':contains(sharksforcheap)').hide(); 
    });

Тем не менее, я хочу сделать так, чтобы он работал для любого users, на который я нажимаю, так как жесткое кодирование для каждого пользователя невозможно. Поэтому я создал переменную с именем user и сослался на нее this, которая должна содержать данные моего users. Однако это не работает.

     $('.tweets').on('click', '.users', function(){

      var user = $(this).data('users');
      $('.tweet').not(':contains('+ user + ')').hide(); 
    });

Я неправильно использую this в этом контексте?

1 Ответ

1 голос
/ 16 марта 2020

Это то, как вам нужно указать атрибут data-users, чтобы получить его значение с .data("users"):

<p class="users" data-users="sharksforcheap">@sharksforcheap: </p>

Но кажется, что то, что вам нужно, легче достичь с помощью

$('.tweet').not($(this).closest('.tweet')).hide();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...