使用带有[+;]和[-]的javascript展开和折叠

使用带有[+;]和[-]的javascript展开和折叠,javascript,Javascript,下面是我用来展开和折叠div的代码。 现在我想对代码做一些修改。 当我展开div时,应该出现一个带有div内容的“[-]”,当我折叠一个带有div内容的“[+]” <style type="text/css"> .gap { border:1px solid black } </style> <script type="text/javascript"> function toggle_visibility(id) { var

下面是我用来展开和折叠div的代码。 现在我想对代码做一些修改。 当我展开div时,应该出现一个带有div内容的“[-]”,当我折叠一个带有div内容的“[+]”

<style type="text/css">
.gap
{

 border:1px solid black

}
</style>

<script type="text/javascript">

    function toggle_visibility(id) {
       var e =document.getElementById(id);

       if(e.style.display == 'none')
        {
          e.style.display = 'block';
          col.innerHTML=valu;
        }
       else
       {
          e.style.display = 'none';

       }
    }

    function edit(id,item)
    {
       var e = document.getElementById(id);
       var f = document.getElementById(item);

     document.getElementById('id4').innerHTML=e.innerHTML;     
      e.innerHTML=f.innerHTML;
      window.location=window.location;

    }
    function cancel(id,item)
    {

        document.getElementById(id).innerHTML=document.getElementById(item).innerHTML;
    }

</script>

<div class="gap" ><a href="#" onclick="toggle_visibility('id1');" id="x">[+]<div id="click" style="float:right;">Click here</div></a></div>

<div id="id1" style="display:none;">This is foo</div>


<a href="#" onclick="toggle_visibility('id2');" ><div class="gap">click here1</div></a>

<div id="id2" style="display:none;">click here1
<div> <a href="#"  onclick="edit('id2','id3');">Edit</a></div>
</div>




<div id="id3" style="display:none;">Edit
<div> <a href="#"  onclick="cancel('id2','id4')">cancel</a></div>
</div>


<div id="id4" style="display:none;"></div>

缺口
{
边框:1px纯黑
}
功能切换\u可见性(id){
var e=document.getElementById(id);
如果(e.style.display==“无”)
{
e、 style.display='block';
col.innerHTML=valu;
}
其他的
{
e、 style.display='none';
}
}
功能编辑(id,项目)
{
var e=document.getElementById(id);
var f=document.getElementById(项目);
document.getElementById('id4').innerHTML=e.innerHTML;
e、 innerHTML=f.innerHTML;
window.location=window.location;
}
功能取消(id,项目)
{
document.getElementById(id).innerHTML=document.getElementById(item).innerHTML;
}
我是福
单击此处1
编辑
我在等你的帮助


提前感谢

使用javascript的显示和隐藏功能来显示和隐藏div:

<div id="showHide" class="open" style="display: block;" onclick="showHide();">
    <!-- Your Contents -->
</div>
当您单击div上的[+]时,此代码将显示div并将[+]更改为[-],反之亦然。如果要将[+]更改为其他内容?就像“[+]单击此处”一样,您只需更改代码中相应的字符串即可。我不明白您所说的“您也想更改内容…”是什么意思。你到底想改变什么

这是你想要的吗

function toggle_visibility(id) {
   var e =document.getElementById(id);
   var label = document.getElementById("x");

   if(e.style.display == 'none')
    {
      label.innerHTML = label.innerHTML.replace("[+]","[-]");
      e.style.display = 'block';
      col.innerHTML=valu;
    }
   else
   {
      label.innerHTML = label.innerHTML.replace("[-]","[+]");
      e.style.display = 'none';

   }
}

我不明白这个问题。你是说当你试图做这些改变时,你会得到某种错误?如果是,错误是什么?或者你是说你还没有尝试过做这些改变,希望这里的人能为你做些改变?或请将您提到的工作代码放在您的问题中,以便人们可以查看它,并告诉您如何添加[+]和[-]符号。任何想要尝试的人都可以使用原始小提琴:@ruakh..您是对的..我已经尝试过,但尚未成功..请让我知道执行此操作的代码..
innerText
在Firefox中不起作用。另外,
textContent
在IE中不起作用。我想op可以用innerHTML替换innerText,而不会牺牲功能here@codetantrik..This一个我已经尝试过并且会工作的..但是我也需要显示内容..像[+]点击这里…[+]单击此处1等。我正在使用多个div..@leonhart..这只适用于一个div..我正在使用具有不同名称的多个div..@leonhart。。。我还需要显示内容..如[+]单击此处…[+]单击此处1等..我正在使用几个div。@leonhart…谢谢..你给出的代码对我有用..谢谢你宝贵的时间。。
function toggle_visibility(id) {
    var e = document.getElementById(id);

    if (e.style.display == 'none') {
        document.getElementById('x').innerText = '[-]';
        e.style.display = 'block';
        //col.innerHTML = valu;
    }
    else {
        e.style.display = 'none';
        document.getElementById('x').innerText = '[+]';
    }
}
function toggle_visibility(id) {
   var e =document.getElementById(id);
   var label = document.getElementById("x");

   if(e.style.display == 'none')
    {
      label.innerHTML = label.innerHTML.replace("[+]","[-]");
      e.style.display = 'block';
      col.innerHTML=valu;
    }
   else
   {
      label.innerHTML = label.innerHTML.replace("[-]","[+]");
      e.style.display = 'none';

   }
}