首页 > 解决方案 > 我正确使用“这个”吗?jQuery

问题描述

我正在处理一个点击事件 - 它隐藏了任何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 的 var 并引用了它,this它应该保存我的users. 但是,这不起作用。

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

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

this在这种情况下使用不正确吗?

标签: javascriptjquery

解决方案


这是您需要指定data-users属性以获取其值的方式.data("users")

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

但似乎你需要的更容易实现

$('.tweet').not($(this).closest('.tweet')).hide();

推荐阅读