Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用';这';函数调用模式中的关键字?_Javascript_Jquery - Fatal编程技术网

Javascript 如何使用';这';函数调用模式中的关键字?

Javascript 如何使用';这';函数调用模式中的关键字?,javascript,jquery,Javascript,Jquery,我不明白如何在函数调用中使用“this”。我有一个函数声明,它在.ready()中调用,但不是在对象上调用。我正试图用“.btn\u toggle”类直接在按钮旁边切换div的可见性。但只有按下按钮旁边的div。不是所有类为“.btn\u toggle”的元素旁边的所有div。关于这个主题的大多数答案/引用都与对象上的函数调用有关,而我并没有这样做 我所尝试的是监听带有类“.btn\u toggle”的任何按钮的点击。并使用jquery的.next()将下一个元素作为目标。它可以工作,但会切换“

我不明白如何在函数调用中使用“this”。我有一个函数声明,它在.ready()中调用,但不是在对象上调用。我正试图用“.btn\u toggle”类直接在按钮旁边切换div的可见性。但只有按下按钮旁边的div。不是所有类为“.btn\u toggle”的元素旁边的所有div。关于这个主题的大多数答案/引用都与对象上的函数调用有关,而我并没有这样做

我所尝试的是监听带有类“.btn\u toggle”的任何按钮的点击。并使用jquery的.next()将下一个元素作为目标。它可以工作,但会切换“.btn_toggle”旁边的所有div

jQuery ( document ).ready( function ( $ ) {

    toggleSubDiv(); 

});

function toggleSubDiv ( ) {
    var btn, target;

    btn = $( '.btn_toggle' );
    target = $( '.btn_toggle' ).next();

    // click listener on btn class 'btn_toggle'
    btn.click( function () {

    // toggle visibility
    target.toggle( );
    });
}

因为
将引用处理程序中单击的按钮,只需将其包装在jQuery中并调用
。下一步

btn.click(function() {
  $(this).next().toggle();
});

啊,我用的是“this.next()”。愚蠢的在没有jquery的情况下,如何在相同的上下文中选择“this”?编辑:如何选择此选项您必须迭代所有按钮,并为每个按钮添加一个侦听器
document.queryselectoral('.btn_toggle').forEach((btn)=>{btn.addEventListener('click',function(){/*add click function,这指的是btn*/
(不过,对于上面的例子,不需要
这个
,因为由于迭代的缘故,您已经有了对
btn
的引用)
.next()
的普通JS版本是