Javascript JQuery帮助,如何隐藏JQuery中的所有按钮

Javascript JQuery帮助,如何隐藏JQuery中的所有按钮,javascript,jquery,Javascript,Jquery,我正试图在我的项目中创建请求/回复部分。 我希望在该代码中实现这些功能(我无法实现;所以请大家帮助我): 1> 当用户点击回复按钮时;其他回复区域(文本区域+按钮)应隐藏(意味着用户一次只能看到一个回复区域)。 2> 当用户点击回复按钮时,文本区域将聚焦,页面将向下滑动(假设用户回复10条评论焦点将自动设置为10号文本区域,页面将相应地向下滑动到该位置) 以下是我迄今为止的代码人员: //method call on the click of reply link. func

我正试图在我的项目中创建请求/回复部分。
我希望在该代码中实现这些功能(我无法实现;所以请大家帮助我):
1> 当用户点击回复按钮时;其他回复区域(文本区域+按钮)应隐藏(意味着用户一次只能看到一个回复区域)。
2> 当用户点击回复按钮时,文本区域将聚焦,页面将向下滑动(假设用户回复10条评论焦点将自动设置为10号文本区域,页面将相应地向下滑动到该位置)

以下是我迄今为止的代码人员:

    //method call on the click of reply link.  
    function linkReply_Clicked(issueId) {    

        Id = issueId;
        textId = "text_" + issueId + count;
        btnReply = "btnReply_" + issueId + count;
        btnCancel = "btnCancel_" + issueId + count;

        var textareasArray = document.getElementsByTagName("textarea");
        var btnArray = document.getElementsByTagName("input");

        for (i = 0; i < textareasArray.length; i++) {
            textareasArray[i].style.display = "none";
            btnArray[i].style.display = "none";
        }

        var str = "<table cellpadding='3' cellspacing='0' width='58%'>";
        str += "<tr><td valign='top' align='left'>";
        str += "<textarea id=" + textId + " rows='5' cols='60'></textarea>";
        str += "</td></tr>";
        str += "<tr><td valign='top' align='right'>";
        str += "<input id=" + btnReply + " type='button' onclick='btnReply_Clicked(Id ,textId)' value='Reply' />&nbsp;";
        str += "<input id=" + btnCancel + " type='button' onclick='btnCancel_Clicked(Id ,textId)' value='Cancel' />&nbsp;";
        str += "</td></tr>";
        str += "</table>";
        document.getElementById("divOuter_" + issueId).innerHTML = str;
        $("#" + textId + "").focus();

    }
    // submit user reply and try to hide that reply area.  
    function btnReply_Clicked(issueId, textID) {

        var comment = document.getElementById(textID).value;
        if (comment != '') {
            $.getJSON("/Issue/SaveComment", { IssueId: issueId, Comment: comment }, null);

            $("#text_" + issueId + count).hide();
            $("#btnReply_" + issueId + count).hide();
            $("#btnCancel_" + issueId + count).hide();
            document.getElementById(textID).value = '';
            count = count + 1;
        }
    }

    // cancel user reply and try to hide that reply area.  
    function btnCancel_Clicked(issueId, textId) {

        $("#text_" + issueId + count).hide();
        $("#btnReply_" + issueId + count).hide();
        $("#btnCancel_" + issueId + count).hide();
        document.getElementById(textId).value = '';
        count = count + 1;
    } 
//单击回复链接调用方法。
函数链接已单击(issueId){
Id=issueId;
textId=“text_”+issueId+count;
btnReply=“btnReply_933;”+发行ID+计数;
btnCancel=“btnCancel_389;”+issueId+count;
var textareasArray=document.getElementsByTagName(“textarea”);
var btnArray=document.getElementsByTagName(“输入”);
对于(i=0;i
我对此做了一点更改,因为您已经在使用jQuery:)

您可以用以下代码替换所有已发布的代码:

function linkReply_Clicked(issueId) {
    $(".replyTable").hide();        
    var tbl = $("<table class='replyTable' cellpadding='3' cellspacing='0' width='58%'></table>");
    tbl.append("<tr><td valign='top' align='left'><textarea rows='5' cols='60'></textarea></td></tr>");
    tbl.append("<tr><td valign='top' align='right'><input type='button' class='reply' value='Reply' />&nbsp;<input type='button' class='cancel' value='Cancel' />&nbsp;</td></tr>");

    tbl.find(".reply").click(function() {            
        var comment = $(this).closest("table").find("textarea").val();
        if (comment != '') {
            $.getJSON("/Issue/SaveComment", { IssueId: issueId, Comment: comment }, null);
            $(this).closest("div").empty();
        }
    }).siblings(".cancel").click(function() {
        $(this).closest("div").empty();
    });

    var div = $("#divOuter_" + issueId).empty().append(tbl);
    $('html, body').animate({ scrollTop: $(div).offset().top }, 500,
                            function() { div.find("textarea").focus(); });
}
function linkReply\u单击(issueId){
$(“.replyTable”).hide();
变量tbl=$(“”);
tbl.附加(“”);
tbl.附加(“”);
tbl.find(“.reply”)。单击(函数(){
var comment=$(this.closest(“table”).find(“textarea”).val();
如果(注释!=''){
$.getJSON(“/Issue/SaveComment”,{IssueId:IssueId,Comment:Comment},null);
$(this).closest(“div”).empty();
}
}).同级(“.cancel”)。单击(函数(){
$(this).closest(“div”).empty();
});
var div=$(“#divOuter”+issueId).empty().append(待定);
$('html,body').animate({scrollTop:$(div.offset().top},500,
函数(){div.find(“textarea”).focus();});
}
这与幻灯片效果不同&隐藏和滚动问题:

  • 回复/取消按钮的单击处理程序现在是串联的,不需要额外的功能
  • 输入不再有需要跟踪的ID,它只是相对地找到它们
  • 表有一个类
    replyTable
    ,所以所有旧表都可以快速隐藏
  • 输入具有类以更容易地找到它们(绑定单击处理程序)
  • 不再计数,无需:)
  • 设置身体动画,对位置执行快速滚动效果,并聚焦文本区域
  • 删除旧表以进行清理

查看HTML的(部分)结构可能也会有所帮助。