Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在单击时来回切换_Javascript_Html_Css - Fatal编程技术网

Javascript 在单击时来回切换

Javascript 在单击时来回切换,javascript,html,css,Javascript,Html,Css,我有一个功能,可以在单击时将文本从+展开更改为-关闭,然后在再次单击时返回。这实际上只是一个基本的解决方案。我非常希望能够将CSS添加到+和-中,而无需编辑.html()中的所有内容。我试着增加一个跨度,但似乎不起作用。我该怎么做呢 JavaScript $('.displaybutton').click(function(){ $('#otherResponseList').toggle(); if($(this).html() == '- Close'){

我有一个功能,可以在单击时将文本从
+展开
更改为
-关闭
,然后在再次单击时返回。这实际上只是一个基本的解决方案。我非常希望能够将CSS添加到
+
-
中,而无需编辑
.html()
中的所有内容。我试着增加一个跨度,但似乎不起作用。我该怎么做呢

JavaScript

$('.displaybutton').click(function(){
    $('#otherResponseList').toggle(); 
        if($(this).html() == '- Close'){
            $(this).html('+ Expand');
        } else {
            $(this).html('- Close');
    }
});

听起来您希望在
之后使用
内容
属性的
::伪选择器。至于javascript,如果您能够使用jQuery,那么
toggleClass
函数就是一行:

$('.toggle')。单击(函数(){
$(this.toggleClass('isOpen'))
});
.toggle{
边框:1px纯黑;
光标:指针;
填充物:5px;
}
.toggle::之后{
内容:“+扩展”;
}
.toggle.isOpen::之后{
内容:“-关闭”;
}

您可以使用伪选择器将
+
-
与内容分开,并将所有内容保存在CSS中。只需在JS中切换一个可以使用CSS作为目标的类

document.getElementById('button').addEventListener('click',function(){
document.getElementById('div').classList.toggle('close');
})
.expand:before{
内容:“+”;
颜色:绿色;
}
.扩展:之后{
内容:“扩展”;
}
.结束:之前{
颜色:红色;
内容:'一';;
}
.结束:之后{
内容:"关闭";;
}

单击