Javascript 在追加后更改html中的文本值
我用append创建了一个按钮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标记
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');
}