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();}
});
});