Javascript 关于文本更改的jquery问题 $(函数(){ var text3; $('.HideButton')。单击(函数(){ text3=$('#MessageText')。text; var theButton=$(这个); $(“#免责声明”).slideToggle('slow',function(){ button.val($(this).is(':可见')?'Hide':'Show'); }); $(“

Javascript 关于文本更改的jquery问题 $(函数(){ var text3; $('.HideButton')。单击(函数(){ text3=$('#MessageText')。text; var theButton=$(这个); $(“#免责声明”).slideToggle('slow',function(){ button.val($(this).is(':可见')?'Hide':'Show'); }); $(“,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,”+text3+”).addClass(“新”).insertAfter(“#免责声明”); 返回false; }); }); 更新…以上代码不会更改按钮文本 <script type="text/javascript"> $(function () { var text3; $('.HideButton').click(function () { text3 = $('#MessageText').text;

”+text3+”

).addClass(“新”).insertAfter(“#免责声明”); 返回false; }); }); 更新…以上代码不会更改按钮文本

<script type="text/javascript">

    $(function () {

        var text3;
        $('.HideButton').click(function () {


            text3 = $('#MessageText').text;

            var theButton = $(this);

            $('#disclaimer').slideToggle('slow', function () {
                theButton.val($(this).is(':visible') ? 'Hide' : 'Show');
            });


            $('<p>' + text3 + '</p>').addClass("new").insertAfter('#disclaimer');
            return false;



        });


    });

dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd

我希望每次按下按钮时按钮的文本都会发生变化,但事实并非如此

<p id="disclaimer" > DDDDDDDDDDDDDDDDDDDDDDDDDD</p>
<asp:Button ID="Button1" CssClass="HideButton" runat="server" Text="Hide" />


作为文本框中键入的消息。它应该在“#免责声明消失”时出现,这是因为您在保存任何文本之前返回了


删除
返回…;
(或将其移动到函数末尾)

将呈现给表单元素。这意味着您应该使用
.val()
而不是
.text()

正如尼尔所指出的,你会在执行之前返回

<p  id="disclaimer"  > 

    <input id="MessageText" type="text" />


</p>

<asp:Button ID="Button21" CssClass="HideButton" runat="server" Text="Hide" />
$('.HideButton')。单击(函数(){
$(“#免责声明”).slideToggle('slow');
//返回false;
如果($(“#免责声明”)。是(“:可见”){
$(this.val('Hide');
}否则{
$(this.val('Show');
}
});
});

dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd


尝试在结尾处返回false;)

返回后,您的代码将永远不会执行。请尝试此操作

    $('.HideButton').click(function () {
        $('#disclaimer').slideToggle('slow');

        // return false;

        if ($('#disclaimer').is(':visible')) {
            $(this).val('Hide');

        } else {
            $(this).val('Show');

        }
    });
});

<p id="disclaimer" > DDDDDDDDDDDDDDDDDDDDDDDDDD</p>
<asp:Button ID="Button1" CssClass="HideButton" runat="server" Text="Hide" />

你最初的问题得到了几次不同的回答和几种不同的方式。现在你问了什么本质上是一个全新的问题

我建议任何进一步的修改都应形成他们自己的问题

这就是你现在想要的吗


如果您向下投票,请留下一个注释,说明您为什么向下投票。按钮上的“调用”(文本)不会改变在该按钮中显示的文本。使用.Var()。我不理解这里的下投票。漂亮的干净代码,但不能用缓存的副本在中间替换该代码> $(this)< />代码吗?$(这个)内部slideToggle指向免责声明div,其中$this指向隐藏按钮,因此我们无法使用它:)这不会在单击按钮时更改按钮的文本。这是一个JSFIDLE变体,它确实会更改。我也不建议使用$this作为变量名,因为它很容易混淆。应该使用信用。这主要是shankar的代码只需要使用.val而不是.textDmitry。这确实回答了您的原始问题,但.val.text除外。您现在完全更改了您的问题。您完全更改了您的问题。现在有一个文本框和一个附加?什么文本框?您的原始问题得到了几次不同的回答,并且有几种不同的方式.现在你已经问了什么本质上是一个全新的问题。我建议任何进一步的改变都应形成他们自己的问题。+1@kasdega这个问题自我们最初回答以来已经完全改变了,不再有意义
$('.HideButton').click(function () {
        var theButton = $(this);
        $('#disclaimer').slideToggle('slow', function(){
            theButton.val($(this).is(':visible')?'Hide':'Show');
        });
    return false;
});