0

我在下面有一段代码,其中包含按钮 AZ。每个按钮都可以打开和关闭。

<?php
    $a = range("A","Z");
?>

<?php
        $i = 1;
        foreach($a as $key => $val){
            if($i%7 == 1) echo"<tr><td>";
            echo"<input type=\"button\" onclick=\"btnclick(this);\" value=\"$val\" id=\"answer".$val."\" name=\"answer".$val."Name\" class=\"answerBtns answers answerBtnsOff\">";      
            if($i%7 == 0) echo"</td></tr>";
            $i++;
        }
    ?>

下面是我试图打开和关闭正确按钮的代码,但问题是它没有关闭按钮。

var answers = '#answer'+btn;
$('.answers.answerBtnsOn').find('answerBtnsOn').addClass('answerBtnsOff');

现在,如果我将最后一行代码更改为以下代码:

$('.answerBtnsOn').find('answerBtnsOn').addClass('answerBtnsOff');

然后它可以工作,但问题是我所有的按钮都有“.answerBtnsOn”类,我只希望关闭“answers”变量中的按钮。

所以我把代码改成这样:

$('.answerBtnsOn', answers).addClass('answerBtnsOff');

但是它不会关闭任何按钮,为什么它不会关闭任何打开的按钮?

4

2 回答 2

2

尝试这个

$('.answers.answerBtnsOn').removeClass('answerBtnsOn').addClass('answerBtnsOff');

或者

$('.answers').filter('.answerBtnsOn').removeClass('answerBtnsOn').addClass('answerBtnsOff');

在您的代码中,您永远不会删除on类,只是在其off上添加

于 2012-07-13T23:47:18.150 回答
1

试试toggleClass()。看起来您只是在添加类而不是更改它或删除以前的类。

有关完整文档,请参阅 jQuery 网站:http ://api.jquery.com/toggleClass/

就像声明的那样:

$('#foo').toggleClass(className, addOrRemove);

相当于:

if (addOrRemove) {
  $('#foo').addClass(className);
} else {
  $('#foo').removeClass(className);
}

所以在你的代码中,我会写:

$('.answerBtnsOn', answers).toggleClass('answerBtnsOn');

当然,除非您的按钮关闭状态与未按下的默认状态不同,否则对于按钮来说这将是非常奇怪的。无论哪种方式,您都可以使用此功能轻松切换两个类。

于 2012-07-13T23:47:57.323 回答