0

我有一个跨度

<span id="spanActive">Show Inactive</span>

尝试使用 JQuery 更改文本,如下所示:

$('#spanActive').text(($(this).text()=='Show Inactive') ? 'Hide Inactive' : 'Show Inactive');

但不工作。

4

5 回答 5

0

使用下面的代码

$('#spanActive').text(($('#spanActive').text()=='Show Inactive') ? 'Hide Inactive' : 'Show Inactive');

您需要this在事件处理程序中使用,该处理程序将在“ this”中包含当前对象。

在此链接检查工作演示

如果您this在单击事件处理程序中使用 span,请尝试使用以下代码

$('#spanActive').click(function () {
    if($(this).text() == 'Show Inactive')
         $(this).text('Hide Inactive');
    else
        $(this).text( 'Show Inactive');
});

在此链接查看演示 在此处输入链接描述

于 2013-07-22T06:24:20.600 回答
0

如果此代码未封装在事件处理程序中,为什么它会起作用,因为this它外部没有上下文。

('#spanActive').on('click', function() {
     $(this).text(($(this).text()=='Show Inactive') 
                  ? 'Hide Inactive' : 'Show Inactive');
});

如果你想在事件的上下文之外使用它,那么你可以试试这个

('#spanActive').text(function(_, txt) {
         return txt === 'Show Inactive'? 'Hide Inactive' : 'Show Inactive'
});
于 2013-07-22T06:24:29.973 回答
0

尝试

$('#spanActive').text(($('#spanActive').text()=='Show Inactive') ? 'Hide Inactive' : 'Show Inactive');
于 2013-07-22T06:25:56.163 回答
0

在这里演示

您的代码有一个“this”引用,它引用的是文档,而不是跨度。所以使用:

  $('#spanActive').text(($("#spanActive").text() == 'Show Inactive') ? 'Hide Inactive' : 'Show Inactive');
于 2013-07-22T06:31:25.387 回答
0

this在这种情况下不起作用..试试这个:

$('#spanActive').text(($("#spanActive").text() == 'Show Inactive') ? 'Hide Inactive' : 'Show Inactive');
于 2013-07-22T06:32:43.817 回答