在JQuery中使用$(this)问题

时间:2013-01-18 04:29:43

标签: javascript jquery

嘿伙计我有以下内容:

$(".views").click(function() {
    $(this).(".views").show();

});

$(".closeviews").click(function () {
    $(this).(".closeviews").hide();

});

这将根据他们想要查看的视图列表打开一个列表,出于某种原因,它告诉我Uncaught SyntaxError: Unexpected token (

一旦我移除了(this).它就消失了,所以我很困惑为什么它会告诉我。

编辑:

我改为:

$(".views").click(function() {
    $(this).find(".views").show()

});

$(".closeviews").click(function () {
    $(this).find(".closeviews").hide()

});

什么都不做,如果我进入上面的视图列表,它会打开这个和那个。

UDATE:

HTML:

我试图用上面的脚本打开的那个 -

<input type='button' value='View Your Employees' class='views' name='views' /> 
<input type='button' value='Close' class='closeviews' name='closeviews' />

我在这一个上面点击的那个,打开上面加上这个:

脚本:

$(".notempl").click(function () {
    $(".notempltable").show();

});

$(".closenotempl").click(function () {
    $(".notempltable").hide();

});

HTML:

<input type='button' value='View Employees' class='notempl' name='notempl' /> 
<input type='button' value='Close' class='closenotempl' name='closenotempl' />

更新:

嘿伙计们感谢所有的帮助,把它整理好了。我实际上是在说出错误的东西来展示和隐藏。每个列表都由PDO语句和表填充,因此我需要显示表,隐藏表而不是按钮。

谢谢你们:)

4 个答案:

答案 0 :(得分:8)

应该是

$(this).hide();
$(this).show();

如果删除$(this),它将隐藏并显示该类的所有元素。如果您点击其中任何一个,那么所有这些都将被隐藏。我不相信你想要那个。

答案 1 :(得分:5)

我认为你的意思是$(this).find(".views").show()

答案 2 :(得分:1)

为什么要找到同一个班级?正如你可以只用$(this)来访问类及其完成的那样:

$(".views").click(function() {
    $(".closeviews").show(); //Show close 
});

$(".closeviews").click(function () {
    $(".views").hide(); // Hide view
});

答案 3 :(得分:1)

Demo

HTML:

<ul class='viewstable'>
  <li>Sample</li>
  <li>Sample 2</li>
</ul>

<input type='button' value='View Your Employees' class='views' name='views' /> 
<input type='button' value='Close' class='closeviews' name='closeviews' />

JS:

$(function () {
  $(".views").click(function () {
    $('.viewstable').show();
  });

  $(".closeviews").click(function () {
    $('.viewstable').hide();
  });
});