Javascript 我的标志不是';t改变

Javascript 我的标志不是';t改变,javascript,jquery,Javascript,Jquery,我是JS新手,只是想了解它是如何工作的 为什么我的符号(+,-)没有改变? 当div展开时,它会保持+叹息,而不会转到- 谢谢 $(document).ready(function(){ $(".expanderHead").click(function(){ $(this).next(".expanderContent").slideToggle(); if ($(".expanderSign").text() == "+"){

我是JS新手,只是想了解它是如何工作的

为什么我的符号(+,-)没有改变? 当div展开时,它会保持+叹息,而不会转到-

谢谢

$(document).ready(function(){
    $(".expanderHead").click(function(){
        $(this).next(".expanderContent").slideToggle();
        if ($(".expanderSign").text() == "+"){
            $(".expanderSign").html("−")
        }
        else {
            $(".expanderSign").text("+")
        }
    });
});

只是猜测一下这种关系,因为您还没有显示HTML,但您可能需要以下内容:

$(document).ready(function () {
    $(".expanderHead:visible").click(function () {
        var content = $(this).next(".expanderContent");
        var sign = $(this).find(".expanderSign");
        if (content.is(":visible")) {
            content.slideUp();
            sign.text("+");
        } else {
            var expanded = $(".expanderContent:visible");
            if (expanded.length > 0) {
                expanded.slideUp();
                expanded.prev(".expanderHead").find(".expanderSign").text("+");
            }
            content.slideDown();
            sign.text("-");
        }
    });
});

仅从快速查看开始,将
.text()
更改为
.html()
。您可以用小提琴演示它吗?您可能至少应该选择
.text()
.html()
并一致地使用其中一个。类
expanderSign
是否有多个元素?您的代码检查并更新了所有这些文件,而不仅仅是连接到您单击的
扩展器头的文件。或者您可以使用jquery accordion自动处理这些文件。如果您将
.prev
更改为
,则感谢>可以在您的小提琴中正常工作。找到
并选择jquery框架。谢谢你,这很有效。。如果不太麻烦的话,你能告诉我如果我点击另一个div,如何自动折叠一个div吗?你可以通过调用
$(“.expanderContent:visible”).slideToggle()来摆脱很多代码首先在单击事件中,然后执行rest@jesus.tesh但在滑动DIV时,它还必须在DIV上切换+/-。你必须做一些不同的事情,这取决于你点击的那个是否是可见的。我经过了几次迭代,这一切都是正确的,看起来很清楚。