Javascript 而不是';行不通 函数排序(td) { var t=document.getElementById(“列表”); var rows=t.getElementsByTagName(“td”); var细胞=t细胞; var bb=真; while(bb==true) { 警报(bb); for(var i=1;i
如果for循环中的任何代码出现错误,它将不会到达第二个警报。我建议在JS调试器中运行此操作。您的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错误
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
}
}