你这样的东西,用数组来做好做。
var ary = new Array();//定义为全局变量。
function updateLine(cbc)
{
if(cbc.checked)
{
addStation(cbc.value);
}
else
{
delStation(cbc.value);
}
}
function addStation(city)
{
ary.push(city);
document.getElementById("p01").innerText = ary.join("/");
}

function delStation(city)
{
for( var i = 0; i < ary.length; i++ )
{
 if( ary[i] == city )
 {
  ary.splice( i, 1 );
 }
}

document.getElementById("p01").innerText = ary.join("/");
}

解决方案 »

  1.   

    ary.splice( i, 1 );
    这句后面 再加上
    i--;
    或加上
    break;这样才好。不过,不加对你的情况也没影响。
      

  2.   

    <script language="javascript" defer>
    function updateLine(cbc)
    {
    if(cbc.checked)
    {
    addStation(cbc.value);
    }
    else
    {
    delStation(cbc.value);
    }
    }
    function addStation(city)
    {
    document.getElementById("p01").innerText += (city + '/');
    }

    function delStation(city)
    {
    var s = city+'/';
    var currentLine = document.getElementById("p01").innerText;
    var sArr = currentLine.split(s);
    var newLine = '';
    for(var i=0;i<sArr.length;i++)
    {
        newLine += sArr[i];
    }
    document.getElementById("p01").innerText = newLine;
    }
    </script>我改写了一下
      

  3.   

    我整理了一下版面,这样好看些:
    var ary = new Array();//定义为全局变量。
    function updateLine(cbc)
    {
    if(cbc.checked)
    {
    addStation(cbc.value);
    }
    else
    {
    delStation(cbc.value);
    }
    }
    function addStation(city)
    {
    ary.push(city);
    document.getElementById("p01").innerText = ary.join("/");
    } function delStation(city)
    {
    for( var i = 0; i < ary.length; i++ )
    {
    if( ary[i] == city )
    {
    ary.splice( i, 1 );
    break;
    }
    }

    document.getElementById("p01").innerText = ary.join("/");
    }
      

  4.   

    谢谢 Amwpfiqvy(布衣神相) 的指教让我学到了这么好的方法真的是非常感谢你。以后还要跟你多多学习啊
      

  5.   

    字符串处理当然是正则表达式喽!用数组有点儿烦!    <script language="javascript" defer>
                var oText = document.getElementById("p01");
                var selectedText = oText.innerText;
    function updateLine(cbc)
    {
    if(cbc.checked)
    {
                        if (selectedText!="") selectedText += "/";
    selectedText += cbc.value;
    }
    else
    {
                        var re = new RegExp("("+cbc.value+"/)|("+cbc.value+")", "gi");
                        selectedText = selectedText.replace(re,"");
    }
                    oText.innerText = selectedText;
    }
    </script>
      

  6.   

    <html>
       <head>
          <title></title>
          <script language="javascript" defer>
             function updateLine(cbc)
             {
                var chks = document.getElementsByName("chkArea");
                var len = chks.length;
                var ar = [];
                for(var i=0;i<len;i++)
                   if(chks[i].checked)
                      ar.push(chks[i].value);
                document.getElementById("p01").innerText = ar.join("/");
             }
          </script>
       </head>
       <body>
          <p id="p01"></p>
          <P><FONT face="宋体"><INPUT id="Checkbox1" type="checkbox" name="chkArea" onclick="updateLine(this)" value="长沙">长沙</FONT></P>
          <P><FONT face="宋体"><INPUT id="Checkbox2" type="checkbox" name="chkArea" onclick="updateLine(this)" value="湘潭">湘潭</FONT></P>
          <P><FONT face="宋体"><INPUT id="Checkbox3" type="checkbox" name="chkArea" onclick="updateLine(this)" value="衡阳">衡阳</FONT></P>
          <P><FONT face="宋体"><INPUT id="Button1" type="button" value="Button" name="Button1"></FONT></P>
       </body>
    </html>
      

  7.   

    updateLine(cbc)我在纯 html 的页面中用 onclick="updateLine(this)" 调用不会出错但是写到 asp.net 的时候,,,他就报错。 不晓得为什么我不用this的话 掉任何函数都没问题。