JQuery .hide()突然没有隐藏按钮

时间:2015-02-06 19:38:34

标签: javascript jquery html

我有一个按钮,用户可以点击该按钮,在页面底部添加一个评论框。我的按钮html看起来像这样:

<input type="button" name="inspection_2895_14045_comment" tabindex="-1" value="+" class="commentBtn" onclick="generateComment('Test', 14045,1, this )">

因此,您可以看到它调用名为generateComment的方法,如下所示:

    function generateComment(name, id, isInspection, button){

        //get the current button and hide it
        var btn = $("a[name='" + button.name + "'");
        btn.hide();//doesn't work

        var generatedName = '';

        if(isInspection){
            generatedName = "comment_" + id;
        }
        else{
            generatedName = "section_" + id;
        }

        var comment = $('#comments');
        var genHtml = '<div class="bigDataDiv">' +
                      '     <label class="commentBoxLabels">' + name + '</label>' +
                      '     <a href="#" class="comment_close" onclick="removeComment(\'' + button.name + '\',this, event);">x</a>' +
                      '     <textarea rows="4" class="commentBox" name=' + generatedName + ' maxlength="200"></textarea>'
                      '</div>';
        comment.append(genHtml);

        $('html,body').animate({
            scrollTop: $(".bigDataDiv").offset().top},
            'slow');
    }

所有这些方法都会隐藏按钮,生成注释div然后滚动到新创建的div。这段代码没有问题,并且用来隐藏按钮但是现在由于某种原因它不起作用并且按钮仍然显示

3 个答案:

答案 0 :(得分:2)

正如neokio指出的那样,你忘记了关闭],但是当你想要的是一个输入标签时,你也在选择一个锚标签。

var btn = $("input[name='" + button.name + "']");

答案 1 :(得分:2)

由于generateComment函数中的按钮是对按钮的引用,您可以使用它来设置btn变量:

var btn = $(button);

然后你不必担心将字符串放在一起来制作你的选择器,或按钮是什么类型的元素。无论如何,你的隐藏都应该有效。

答案 2 :(得分:1)

你忘了结束了......

var btn = $("a[name='" + button.name + "']");

在最终+

之前,您还错过了'</div>';