jQuery无法识别的表达式:#

时间:2017-01-10 00:43:07

标签: javascript jquery

代码的工作原理是它删除了隐藏对象隐藏的类,但它拒绝将其添加回来,我尝试了不同的方法但没有成功。

未捕获错误:语法错误,无法识别的表达式:#

$(function() {
  $('img').on('click', function() {
    var me = $(this).attr('class')
    var x = $('#' + me)

    if(x.hasClass('hidden')) {
        x.removeClass('hidden')
    } else {
        x.addClass('hidden')
    }

  });
});

http://codepen.io/anon/pen/BpoMQg?editors=1111

制作了我正在做的工作的代码,它让我意识到了问题,但是我仍然需要一种更好的方法。

问题在于我试图使用现在未隐藏的图像来关闭它,但由于我的'我'变量在类中搜索它失败了,但是如果再次按相同的图像则有效。

2 个答案:

答案 0 :(得分:1)

你的意思是?

$(function() {
    $('img').on('click', function() {
        $(this).toggleClass('hidden');
    });
}

答案 1 :(得分:0)

您可以根据您的描述使用此功能:

$(function() {
    $('img').on('click', function() {
   if($(this).index()==0) {
  
   $(this).next().toggleClass('hidden');
   }
   else
     $(this).toggleClass('hidden');
    });
});
img {
  display:block;
  margin:5px auto;
}
.hidden {
  display:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">

<img class="1" src="https://images.blogthings.com/thelollipoptest/lollipop-3.jpg" alt="PREVIEW_IMAGE:1">

<img id="1" class="hidden" src="https://placehold.it/200x200" alt="PREVIEW_IMAGE:1.1">
</div>