-2

HTML

<span class="sentiment-info"></span>

jQuery

$('.sentiment-info').attr('class', 'sentiment neutral');
var val = foo.attr('class');
alert(val);

编辑:好的,所以我之前所说的一切都不重要。让我们把这个问题简单化。我的语法有什么问题?我越来越不确定了。

EDIT2:所以看起来 '.sentiment-info' 不能改变班级,但 '#sentiment-info' 会。如何解决这个问题?

EDIT3:解决方案:

var foo = $('.sentiment-info');
foo.attr('class', 'sentiment neutral');
var val = foo.attr('class');
alert(val);
4

4 回答 4

1

要完全删除类,

$('.sentiment-info').removeClass(<classname>);

要重新分配不同的班级,请使用

$('.sentiment-info').attr('class',<classname>);
于 2013-08-14T20:54:20.847 回答
1

根据您的编辑,我认为这就是您所要求的:

$('.sentiment-info')
    .removeClass('sentiment-info') 
    .addClass('sentiment')
    .addClass(sentiment);

如果sentimentpositive,它会改变

<span class="sentiment-info sentiment-class"></span>

<span class="sentiment-class sentiment positive"></span>
于 2013-08-14T20:59:57.077 回答
0

试试这样:

$('span.sentiment-info').toggleClass('className');
于 2013-08-14T20:54:54.373 回答
0
$('.sentiment-class').toggleClass('sentiment ' + sentiment);

因此,您之前放置的类将始终存在,并且'sentiment ' + sentiment将打开/关闭。

所以:

<span class="sentiment-info sentiment-class"></span>

会变成:

<span class="sentiment-info sentiment-class sentiment positive"></span>

然后如果切换将返回:

<span class="sentiment-info sentiment-class"></span>

如果要sentiment-info删除,请像这样称呼它:

$('.sentiment-class').removeClass('sentiment-info').toggleClass('sentiment ' + sentiment);

或者,如果您想要与您的情绪相反的切换,您可以:

$('.sentiment-class').toggleClass('sentiment-info').toggleClass('sentiment ' + sentiment);
于 2013-08-14T21:00:35.497 回答