Javascript 在追加后更改html中的文本值

Javascript 在追加后更改html中的文本值,javascript,jquery,html,events,Javascript,Jquery,Html,Events,我用append创建了一个按钮 var row = '<tr><td><button class="directly-follow btn" text="Follow">Follow</button></td></tr>'; $('.textWord_about> table > tbody').append(row); 问题是行$post.text('Unfollow')更改了按钮文本,但没有更改html标记

我用append创建了一个按钮

var row = '<tr><td><button class="directly-follow btn" text="Follow">Follow</button></td></tr>';
$('.textWord_about> table > tbody').append(row);
问题是行
$post.text('Unfollow')
更改了按钮文本,但没有更改html标记中定义的文本(
text=“Follow”
)。结果,该功能没有按我所希望的那样切换(if总是true!)


如何使用jquery更改文本?

要更改自定义
属性的值,必须使用
attr
方法

attr
方法可用于获取
属性值,也可用于设置
属性值

该方法获取属性集合中第一个元素的属性值 匹配元素或为每个匹配元素设置一个或多个属性 元素

使用attr而不是文本。

var行='Follow';
$('.textWord_about>table>tbody')。追加(行);
$(文档)。在('单击','上。直接跟随',函数(){
event.preventDefault();
if($(this.attr(“text”)=“Follow”){
$(this.text('Unfollow');
$(this.attr('text','Unfollow');
}
否则{
$(this.text('Follow');
$(this.attr('text','Follow');
}
});

我想你想要这样:

var行='Follow';
$('.textWord_about>table>tbody')。追加(行);
$(文档)。在('单击','上。直接跟随',函数(事件){
event.preventDefault();
var$post=$(本);
log($post.attr(“text”))
如果($post.attr(“text”)=“Follow”){
$post.text('Unfollow');
$post.attr(“文本”,“取消跟踪”)
//做点什么
}
否则{
$post.text('Follow');
$post.attr(“文本”、“跟随”)
//做点什么
}
})

您应该使用检索自定义属性(以“data-”开头)

然后,按钮没有
文本()。。。但是有
html()
,用于显示其上的文本

$(文档)。在('单击','上。直接跟随',函数(){
event.preventDefault();
var$post=$(本);
if($post.data(“text”)==“Follow”){
$post.html('Unfollow');
$post.data(“文本”、“展开”);
//做点什么
}
否则{
$post.html('Follow');
$post.data(“文本”、“后续”);
//做点什么
}
});

跟随

您在
$('.textWord_about'>table>tbody')中有一个输入错误。追加(行)(额外的
)。而且,
text
不是按钮元素的有效属性,正如@j08691所说,在
textWord\u about
@j08691之后立即删除
,实际上,追加不是问题。我把问题中的代码简化了一点,只是忘了省略多余的部分。我没有说这是问题所在,我说你多余的
是一个打字错误
$(document).on('click', '.directly-follow', function() {
    event.preventDefault();
    var $post = $(this);
    if ($post.attr("text") == "Follow") {
        $post.text('Unfollow');
        //do something
     }
     else{
        $post.text('Follow');
        //do something
     }
$(document).on('click', '.directly-follow', function() {
event.preventDefault();
var $post = $(this);
if ($post.attr("text") == "Follow") {
    $post.text('Unfollow');
    $post.attr('text','Unfollow');
 }
 else{
    $post.text('Follow');
    $post.attr('text','Follow');
 }