Javascript 而不是';行不通 函数排序(td) { var t=document.getElementById(“列表”); var rows=t.getElementsByTagName(“td”); var细胞=t细胞; var bb=真; while(bb==true) { 警报(bb); for(var i=1;i

Javascript 而不是';行不通 函数排序(td) { var t=document.getElementById(“列表”); var rows=t.getElementsByTagName(“td”); var细胞=t细胞; var bb=真; while(bb==true) { 警报(bb); for(var i=1;i,javascript,dom,Javascript,Dom,如果for循环中的任何代码出现错误,它将不会到达第二个警报。我建议在JS调试器中运行此操作。您的var行是一个数组,它不会有属性“cells”。这可能是您的问题。页面上是否出现javascript错误?如果for循环在某个点出现错误,则不会触发第二个警报。可能是因为脚本执行在第一个警报之后第二个警报之前终止。您的浏览器中是否收到任何错误消息?(该浏览器是哪个?)我使用Opera。没有错误。它可以工作,但同时工作并且不会返回。请尝试firefox的web开发工具包插件来跟踪javascript错误

如果for循环中的任何代码出现错误,它将不会到达第二个警报。我建议在JS调试器中运行此操作。

您的
var行
是一个数组,它不会有属性“cells”。这可能是您的问题。

页面上是否出现javascript错误?如果for循环在某个点出现错误,则不会触发第二个警报。可能是因为脚本执行在第一个警报之后第二个警报之前终止。您的浏览器中是否收到任何错误消息?(该浏览器是哪个?)我使用Opera。没有错误。它可以工作,但同时工作并且不会返回。请尝试firefox的web开发工具包插件来跟踪javascript错误。用谷歌搜索它。@Piemons:这没有帮助,firefox不支持
innerText
+1。还想知道它是否应该是
var rows=t.getElementsByTagName(“tr”)
而不是
td
@Martin Smith:嗯……听起来似乎太有道理了。@Martin:可能是对的。我知道他想做什么,但我就是不想这样做。我可能会使用嵌套for循环,而不是使用while循环。如果我能帮助的话,我几乎从不使用while循环。
function Sort(td)
{
    var t=document.getElementById("theList");
    var rows=t.getElementsByTagName("td");
    var cells=t.cells;
    var bb=true;
    while(bb==true)
    {
    alert(bb);
      for(var i=1;i<rows.length;i++)
       {
           if(cells[td.cellIndex+i*4].innerText<cells[td.cellIndex+(i+1)*4].innerText)
            {

            }
        }
    alert("Works"); //this alert is not reached
    }
}