单击功能后删除括号内的文本

时间:2013-12-19 13:16:30

标签: jquery html

我有Jquery,我放在<head>

$('#change_text').text(function(_, text) {
    return text.replace(/\[.*?\]/g, '');
});

删除[]括号内的所有内容。

和html:

<div id="change_text">Hello [username]</div>

这一切都可以正常移除[username]


但我也有Jquery:

$('#change_text').click(function(){
    $(this).html("Hey [username2]")
});

但是当您点击时,它不会删除[username2]

这是jsfidle

2 个答案:

答案 0 :(得分:2)

$.text()不会跟踪您的元素。尝试将其包装到函数中,并在您更改html时随时调用它。

function changetext(){
    $('#change_text').text(function(_, text) {
        return text.replace(/\[.*?\]/g, '');
    });
}
$('#change_text').click(function(){
    $(this).html("Hey [username2]");
    changetext();
});
changetext();

检查fiddle

答案 1 :(得分:2)

function changeText(text){
    return text.replace(/\[.*?\]/g, '');
}

$('#change_text').text(function(_, text) {
        return text.replace(/\[.*?\]/g, '');
    });

$('#change_text').click(function(){
    $(this).html(changeText("Hey [username2]"))
});

jsFiddle