function getText(n) {
// JavaScript Document
function getStrings(n, strings)
{
if(n.nodeType == 3) strings.push(n.data);
else if(n.nodeType == 1){
for(var m = n.firstChild; m != null; m = m.nextSibling){
getStrings(m, strings);}
}
}
var strings = [];
getStrings(n, strings);
return strings.join(" ");
} 请指教 为什么getStrings(n, strings);不能调用上面定义的那个函数呢??

解决方案 »

  1.   

    function getText(n) {
    // JavaScript Document
    }
    var strings = [];
    getStrings(n, strings);
    return strings.join(" ");

    function getStrings(n, strings)
    {
    if(n.nodeType == 3) strings.push(n.data);
    else if(n.nodeType == 1){
    for(var m = n.firstChild; m != null; m = m.nextSibling){
    getStrings(m, strings);}
    }
      

  2.   

    楼主你把你那段js放到页面底部就可以了类似
    <body>
    <table ID="kk">
    <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
    </tr>
    <tr>
    <td>4</td>
    <td>5</td>
    <td>6</td>
    </tr>
    <tr>
    <td>7</td>
    <td>8</td>
    <td>9</td>
    </tr>
    </table><script type="text/javascript">
    <!--
    function getText(n) {
    // JavaScript Document
    function getStrings(n, strings)
    {
    if(n.nodeType == 3) strings.push(n.data);
    else if(n.nodeType == 1){
    for(var m = n.firstChild; m != null; m = m.nextSibling){
    getStrings(m, strings);}
    }
    }
    var strings = [];
    getStrings(n, strings);
    return strings.join(" ");
    } alert(getText(document.getElementById("kk")))
    //-->
    </script> </body>
      

  3.   

    请问这个为什么不能把javascript放在上面那么做呢?帮解释解释呗
      

  4.   

      <script type="text/javascript">
    <!--
    function getText(n) {
    // JavaScript Document
    function getStrings(n, strings)
    {
    if(n.nodeType == 3) strings.push(n.data);
    else if(n.nodeType == 1){
    for(var m = n.firstChild; m != null; m = m.nextSibling){
    getStrings(m, strings);}
    }
    }
    var strings = [];
    getStrings(n, strings);
    return strings.join(" ");
    }  window.onload=function()
    {
    alert(getText(document.getElementById("kk")))
    }
    //-->
    </script>
    这样也可以 。这个主要是与页面的渲染顺序有关系。浏览器会先下载css  js文件。此时你的body还没有渲染完成。所以找不到你所要找的元素 。放在load时间里就可以 
      

  5.   


    <script type="text/javascript">function getText(n){function getStrings(n, strings)
    {
    if(n.nodeType == 3) strings.push(n.data);
    else if(n.nodeType == 1){
    for(var m = n.firstChild; m != null; m = m.nextSibling){
    getStrings(m, strings);}
    }
    }
    var strings=[];
    getStrings(n,strings);
    return strings.join(" ");
    }
    </script>
    <body onload="alert(getText(document.getElementById("id"))">
    <ul ID="id">
    <li>a</li>
    <li>s</li>
    <li>d</li>
    </ul>
    我想知道 我这个是定义的onload事件 不是等到页面全部载入然后再调用这个函数么?这个为什么不行啊??真的想不明白
      

  6.   

    <script type="text/javascript">function getText(n){function getStrings(n, strings)
    {
    if(n.nodeType == 3) strings.push(n.data);
    else if(n.nodeType == 1){
    for(var m = n.firstChild; m != null; m = m.nextSibling){
    getStrings(m, strings);}
    }
    }
    var strings=[];
    getStrings(n,strings);
    return strings.join(" ");
    }
    </script>
    <body onload="alert(getText(document.getElementById('id')))">
    <ul ID="id">
    <li>a</li>
    <li>s</li>
    <li>d</li>
    </ul>
    </body>