Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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
Jquery 如何使用$this_Jquery - Fatal编程技术网

Jquery 如何使用$this

Jquery 如何使用$this,jquery,Jquery,我仍在学习jQuery,代码如下: $("#panel1 .button").click(function(){ $("#q1").hide(); $("#success1").show(); }); $("#panel2 .button").click(function(){ $("#q2").hide(); $("#success2").show(); }); $("#panel3 .button").cli

我仍在学习jQuery,代码如下:

$("#panel1 .button").click(function(){
      $("#q1").hide();
      $("#success1").show();
    });

    $("#panel2 .button").click(function(){
      $("#q2").hide();
      $("#success2").show();
    });

    $("#panel3 .button").click(function(){
      $("#q3").hide();
      $("#success3").show();
    });
它看起来是多余的,我想知道是否可以使用$this来简化它,或者如果有其他方法,我将非常感谢您的帮助


谢谢

我们可以通过更改标记来删除重复的代码

首先,让我们修改面板,使其具有公共类(“面板”)和HTML5数据属性:

<div class="panel" data-panelid="1">
现在,在单击处理程序中,我们可以检查数据属性并显示/隐藏正确的元素:

var panelId = $(this).data('panelid')
$("#q" + panelId).hide();
$("#success" + panelId).show();
现在我们已经消除了重复的代码,并且对所有按钮只使用了一个处理程序。完成的jQuery如下所示:

$(".panel .button").click(function(){
   var panelId = $(this).data('panelid')
   $("#q" + panelId).hide();
   $("#success" + panelId).show();
});

请发布你的HTML。
$(".panel .button").click(function(){
   var panelId = $(this).data('panelid')
   $("#q" + panelId).hide();
   $("#success" + panelId).show();
});