可以用while循环click对象的parent对象,直到parent不存在

解决方案 »

  1.   

    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>test</title>
    <script>
    function chooseArea(obj){
    var str = "";
    for(var i=4;i<=obj.id.length;i++)
    {
    if(i!=4)str += "-";
    str += document.getElementById(obj.id.substring(0,i)).childNodes[0].nodeValue;
    }
    alert(str);
    }
    </script>
    </head><body>
    <p id="text">text</p>
    <ul id="ul">
    <li id="li_1">
        123
        <ul>
        <li id="li_11" onclick="chooseArea(this)">abc</li>
        <li id="li_12" onclick="chooseArea(this)">def</li>
        <li id="li_13">ghi
           <ul>
           <li id="li_131" onclick="chooseArea(this)">一</li>
           <li id="li_132" onclick="chooseArea(this)">二</li>
           <li id="li_133" onclick="chooseArea(this)">三</li>
           </ul>
        </li>
        </ul>
    </li>
    <li id="li_2" onclick="chooseArea(this)">456</li>
    <li id="li_3" onclick="chooseArea(this)">789</li>
    </ul></body></html>
      

  2.   

    chooseArea(this)函数会被多次调用!!
    如:点三的话会执行<li id="li_133" onclick="chooseArea(this)">三</li>,<li id="li_13" onclick="chooseArea(this)">,<li id="li_1" onclick="chooseArea(this)">
    <script language="javascript">
    var str="";
    function chooseArea(o){
    var a=o.innerHTML.split("<UL>");
    if (str=="")
    str=a[0];
    else
    str=a[0]+"-"+str;
    document.getElementById("jg").value=str;
    setTimeout("a()", 500);
    }
    function a(){
    str="";
    }
    </script><p id="text">text</p>
    <ul id="ul">
    <li id="li_1" onclick="chooseArea(this)">
        123
        <ul>
        <li id="li_11" onclick="chooseArea(this)">abc</li>
        <li id="li_12" onclick="chooseArea(this)">def</li>
        <li id="li_13" onclick="chooseArea(this)">ghi
           <ul>
           <li id="li_131" onclick="chooseArea(this)">一</li>
           <li id="li_132" onclick="chooseArea(this)">二</li>
           <li id="li_133" onclick="chooseArea(this)">三</li>
           </ul>
        </li>
        </ul>
    </li>
    <li id="li_2" onclick="chooseArea(this)">456</li>
    <li id="li_3" onclick="chooseArea(this)">789</li>
    </ul>
    <input id="jg" type="text">
      

  3.   

    tank_pp 太牛了~~
    lihui_shine 也很牛 不过代码仍有些bugsetTimeout("a()", 500);
    setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。
      

  4.   

    用jquery吧$(document).ready(function() {
    $("#orderedlist").find("li").each(function(i) {
    alert( $(this).html());
    });
    });
      

  5.   

    var a = o.innerHTML.split("<UL>");
    这句是什么意思?
      

  6.   

     用<UL>把this的内容 分割成数组
      

  7.   

    var a = o.innerHTML.split(" <UL>"); 
    关键还是这一句,换到复杂的界面中,split的参数也要改变,如 '<UL style'。