javascript - jQuery if 和 $(this) 混淆

标签 javascript jquery

有件事困扰了我一段时间。

JavaScript

$('.video-tab-container ul li a').click(function(e) {
    var thisClass = $(this).attr('class');
    console.log(thisClass);
    if ( $('.video-container .video').is('.' + thisClass) ) {
        $(this).addClass('test');
      }
    e.preventDefault();
});

HTML

<div class="video-tab-container clearfix">
    <ul>
        <li><a class="chinese" href="#">Chinese</a></li>
        <li><a class="thai" href="#">Thai</a></li>
        <li><a class="english" href="#">English</a></li>
    </ul>
</div>
<div class="video-container">
    <div class="video chinese"></div>
    <div class="video thai"></div>
    <div class="video english"></div>
</div>

在 if 语句中,如何使 $(this) 成为 if 语句中的元素?那么,如果该语句为真,则 test 类会与相应的类一起添加到 .video 中吗?也许我做的这一切都是错误的。

最佳答案

您需要使用:

$(this).closest('.video-tab-container').next()
       .find('.video.' + thisClass).addClass('test')
       .siblings('.video').removeClass('test');

而不是:

$(this).addClass('test');

因为目前 $(this) 被视为您点击的 anchor 。

<强> Fiddle Demo

关于javascript - jQuery if 和 $(this) 混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23546704/

相关文章:

javascript - 点击链接后页面跳转 - jQuery AJAX 调用

javascript - Firefox 和 Chrome 不在 innerHTML 中显示图像

javascript - 使用随机排序顺序的 typescript 数组排序

javascript - 无法调用未定义的方法 'apply' 为 jquery 谷歌地图插件设置方向

javascript - 使用 javascript 与 jquery 隐藏元素

javascript - 如何在AJAX中同时访问JSON对象、二维和单个数组?

javascript - 如何从异步调用返回响应?

javascript - 滚动时检测视口(viewport)/中心中最常见的 DIV

Javascript JQuery 变量串联(form.inputtag.value)

javascript - 加载js文件之前不执行javascript(异步)