jQuery-文本仅切换一次

jQuery-文本仅切换一次,jquery,html,Jquery,Html,我有一个简单的脚本,应该从+更改为- 当内容打开且向后时。 但是现在,当它变为-时,不管发生什么,它都保持为-。 即使折叠内容,它仍然保持为- 我试图反转函数,但它只是对+做了同样的操作 jQuery HTML Lorem ipsum Lorem ipsum Lorem ipsum。 + Lorem ipsumLorem ipsumLorem ipsum Lorem ipsumLorem ipsumLorem ipsumLorem ipsum, Lorem ipsumLorem ipsumL

我有一个简单的脚本,应该从
+
更改为
-
内容
打开且向后时。
但是现在,当它变为
-
时,不管发生什么,它都保持为
-
。 即使折叠内容,它仍然保持为
-

我试图反转函数,但它只是对
+
做了同样的操作

jQuery
HTML

Lorem ipsum Lorem ipsum Lorem ipsum。
+
Lorem ipsumLorem ipsumLorem ipsum
Lorem ipsumLorem ipsumLorem ipsumLorem ipsum,
Lorem ipsumLorem ipsumLorem ipsum


您的条件检查逻辑是错误的,请尝试以下方法:

if ($("#expanderSign").text() == "+"){
    $("#expanderSign").html("-")
}
else {
    $("#expanderSign").html("+")
}

如果它是加号,即负号,则要将其更改为加号

if($("#expanderSign").html() != "+") { // is anything but a '+'
    $("#expanderSign").html("+");
}
else { // is a '+'
    $("#expanderSign").html("-");
}

您在代码中看不到任何更改,因为您正在将减号更改为减号,将加号更改为加号。

您的逻辑是错误的,您的意思是,如果符号当前不是
+
(它是
-
),则将其设置为
-
。该标志将始终为
-

将您的条件更改为:

if ($("#expanderSign").text() == "+"){
或者在方法中使用函数如何:

“如果没有=+则将其设置为负”


基本上,如果它=“-”将其设置为“-”就是您现在设置的。试着改变一下!=to==。

逻辑是向后显示哪个符号。请看下面的小提琴

$(document).ready(function () {
    $("#expanderHead").click(function () {
        $("#expanderContent").slideToggle();
        // Backwards logic
        if ($("#expanderSign").text() != "-") {
            $("#expanderSign").html("-");
        } else {
            $("#expanderSign").html("+");
        }
    });
});

你是说如果不是
=等于加号,即应使其减为负号:

if ($("#expanderSign").text() != "+"){
    $("#expanderSign").html("-");
所以只要改变
=
==

if ($("#expanderSign").text() == "+"){
    $("#expanderSign").html("-");

在HTML中:

<span id="expanderSign">+</span>
no carriage return-------^
$("#expanderSign").html($("#expanderSign").html() != "+" ? "+" : "-");

事实上,我自己也在工作。 这有点老套,但很管用

$(document).ready(function(){
                                var expanded = false;
                                var collapsed = true;
                                $("#expanderHead").click(function(){
                                    if (expanded == true) {
                                        expanded = false;
                                        collapsed = true;
                                    } else {
                                        expanded = true;
                                        collapsed = false;
                                    }

                                if (expanded == true) {
                                    $("#expanderSign").html("-");
                                    $("#expanderContent").slideToggle();}

                                if (collapsed == true) {
                                    $("#expanderSign").html("+");
                                    $("#expanderContent").slideToggle();}
                                });
                            });

if块的内容是else块,else块的条件是if块。现在它的工作原理正好相反。它在展开时显示加号,在折叠时显示减号。这里提供了更好的解决方案。我赞赏你自己解决问题的努力,但我也鼓励你尝试下面的一些解决方案,并接受其中一个作为答案,而不是发布自己的解决方案,剥夺他们应得的分数。至少单击他们答案旁边的小向上箭头。
<span id="expanderSign">+</span>
no carriage return-------^
$("#expanderSign").html($("#expanderSign").html() != "+" ? "+" : "-");
$(document).ready(function(){
                                var expanded = false;
                                var collapsed = true;
                                $("#expanderHead").click(function(){
                                    if (expanded == true) {
                                        expanded = false;
                                        collapsed = true;
                                    } else {
                                        expanded = true;
                                        collapsed = false;
                                    }

                                if (expanded == true) {
                                    $("#expanderSign").html("-");
                                    $("#expanderContent").slideToggle();}

                                if (collapsed == true) {
                                    $("#expanderSign").html("+");
                                    $("#expanderContent").slideToggle();}
                                });
                            });