jQuery隐藏父母

时间:2014-01-23 21:56:45

标签: javascript jquery html

我有以下HTML:

 <div class="windowtemplate movingwindow" style="display: block;">
    <div class="top">Attenzione <a href="#" onclick="closedialog();"><span class="closebutton"></span></a></div>
    <div class="body">
      <p>texthere</p>
      <a href="#" onclick="closedialog();"><span class="genericbutton">Close</span></a>
    </div>
    <div class="bottom"></div>
 </div>

我正在尝试使用此代码隐藏此框(从div class =“windowtemplate movingwindow”开始):

function closedialog() {
           $(this).parent("windowtemplate").hide();
    };

但这并没有排除任何影响,我错了? (我是jQuery的新手,所以,对不起,如果这是一个非常简单的问题,但我找不到任何解决方案!)

3 个答案:

答案 0 :(得分:1)

首先,你错过了表示一个类的点和第二个父()选择器只搜索树中的等级,你需要parents()。 使用此代码 -

$('.genericbutton').on('click', function() {
    $(this).parents(".windowtemplate").hide();
}

答案 1 :(得分:1)

  1. this这里没有引用点击的元素。
  2. 选择器错误,类选择器缺少.
  3. .parent()未选择祖父母元素,您应使用.closest()代替。
  4. 您应该避免使用属性事件处理程序。

    $('.genericbutton').on('click', function() {
         $(this).closest('.windowtemplate').hide();
    });
    
  5. 如果动态生成.windowtemplate,您应该委派该事件,如果您使用的是jQuery 1.7+,则可以使用.on()方法:

    $(document).on('click', '.genericbutton', function() {
       $(this).closest('.windowtemplate').hide();
    });
    

答案 2 :(得分:1)

试试这个

  <a href="#" onclick="closedialog(this);"><span class="genericbutton">Close</span></a>

这是你的js

function closedialog(element) {
       $(element).closest(".windowtemplate").hide();
};