单击后更改跨度内的文本(jquery)

时间:2013-10-08 11:15:38

标签: jquery

我有跨度内的按钮

<span class="act-button"><input type="button" value="Deactivate" onclick="deactivateTemplate(' + options.rowId + ')"></span>

我需要在span.act-button之后更改onclick内的文字 我试图使用这段代码

function deactivateTemplate(id) {
        $.post('@Url.Action("DeactivateFormTemplate")', { id: id })
        .done(function (result) {
            showMessage(result.Message);
            $('span.act-button').empty().html('<input type="button" value="Activate" onclick="activateTemplate(' + options.rowId + ')">');
        });

但点击后我的按钮就消失了,我在span.act-button内没有新的按钮。
我的代码出了什么问题?

1 个答案:

答案 0 :(得分:1)

  1. 无需重新创建按钮。只需更改其值

    function deactivateTemplate(id) {
            $.post('@Url.Action("DeactivateFormTemplate")', { id: id })
            .done(function (result) {
                showMessage(result.Message);
                $('span.act-button>input').val('Activate');
            });
    }
    
  2. jquery中的DOM操作方法是异步的:它们不会立即完成。因此,empty()可以在html()之后完成执行。尽量不要那样使用。