Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态创建的按钮文本_Javascript_Jquery - Fatal编程技术网

Javascript 动态创建的按钮文本

Javascript 动态创建的按钮文本,javascript,jquery,Javascript,Jquery,我正在动态创建两个按钮 如何更改按钮文本?下面是我试过的,但不起作用 $(document).on('click', '.class', function(e){ var thisbut = this.id; $.post('my.php',{ val: val1 }, function(done){ document.getElementById(thisbut).innnerHTML = "Button Text New"; }); }); inn

我正在动态创建两个按钮

如何更改按钮文本?下面是我试过的,但不起作用

$(document).on('click', '.class', function(e){
    var thisbut = this.id;
    $.post('my.php',{ val: val1 }, function(done){
         document.getElementById(thisbut).innnerHTML = "Button Text New";
    });
});

innerHTML
应该是
innerHTML
,只有当所有按钮都具有唯一ID时,您的代码才会工作

相反,您可以直接使用该元素-无需按ID重新选择它:

this.innerHTML = "Button Text New";
或jQuery:

$(this).text("Button Text New");

在经过编辑的问题之后:

您可以将按钮分配给如下所示的变量,然后在成功处理程序中使用它。在成功处理程序中简单地使用
this
将不起作用,因为
this
上下文已更改,因此通过将按钮存储在变量中,您可以保留它以供进一步使用:

$(document).on('click', '.class', function(e){
    var thisbut = this;
    $.post('my.php',{ val: val1 }, function(done){
         thisbut.innnerHTML = "Button Text New";
         // or jQuery:
         $(thisbut).text("Button Text New");
    });
});

innerHTML
应该是
innerHTML
,只有当所有按钮都具有唯一ID时,您的代码才会工作

相反,您可以直接使用该元素-无需按ID重新选择它:

this.innerHTML = "Button Text New";
或jQuery:

$(this).text("Button Text New");

在经过编辑的问题之后:

您可以将按钮分配给如下所示的变量,然后在成功处理程序中使用它。在成功处理程序中简单地使用
this
将不起作用,因为
this
上下文已更改,因此通过将按钮存储在变量中,您可以保留它以供进一步使用:

$(document).on('click', '.class', function(e){
    var thisbut = this;
    $.post('my.php',{ val: val1 }, function(done){
         thisbut.innnerHTML = "Button Text New";
         // or jQuery:
         $(thisbut).text("Button Text New");
    });
});
尝试使用$(this)获取元素的id

$(document).on('click', '.class', function(e){
    var thisbut = $(this).attr("id");
    document.getElementById(thisbut).innerHTML = "Button Text New";
});
尝试使用$(this)获取元素的id

$(document).on('click', '.class', function(e){
    var thisbut = $(this).attr("id");
    document.getElementById(thisbut).innerHTML = "Button Text New";
});

不是
。innerHTML
应该是
。innerHTML
使用
innerHTML
而不是
innerHTML
。检查
innerHTML
typo.。应该是
innerHTML
而不是
。innerHTML
应该是
。innerHTML
使用
innerHTML
而不是
innerHTML
。检查
innerHTML
typo..应该是
innerHTML
您的解决方案可能因为$.post()请求而无法工作?请看我的编辑。谢谢。但是按钮文本仅在
thisbut.innnerHTML=“按钮文本新建”时更改
位于
$.post('my.php',{val:val1},function(done){
之上。但它不会更改成功处理程序中的文本。如果它在成功处理程序中不起作用,则成功处理程序可能没有运行。可能my.php出错。您的解决方案可能因为$.post()而不起作用请求?请查看我的编辑。谢谢。但是按钮文本只有在
thisbut.innnerHTML=“button text New”
高于
$.post('my.php',{val:val1},函数(完成)时才会更改{
。但它不会更改成功处理程序中的文本。如果它在成功处理程序中不起作用,则成功处理程序可能没有运行。可能是my.php出错。