Javascript 页面选择脚本不工作

Javascript 页面选择脚本不工作,javascript,jquery,ajax,Javascript,Jquery,Ajax,我的网站不想显示此脚本。 当我把它放在索引页面上时,它会显示出来,但当我把它放在其他页面上时,什么都没有发生 <div id="pages"></div>   <script>      a = location.href;      b = a.split('-');      c = b.length;      d = eval(c - 1);      e = b[d];      f = a.split('-' + e)[0];     

我的网站不想显示此脚本。 当我把它放在索引页面上时,它会显示出来,但当我把它放在其他页面上时,什么都没有发生

<div id="pages"></div>  
<script>  
    a = location.href;  
    b = a.split('-');  
    c = b.length;  
    d = eval(c - 1);  
    e = b[d];  
    f = a.split('-' + e)[0];  
  
    $('#pages').html('<a id="b" href="' + f + '-' + eval(e - 1) + '">Previous' + 
        '</a><span id="i"> | </span><a id="a" href="' + f + '-' + eval(e * 1 + 1) + '">Next</a>');  
 
    $.ajax({  
        type: 'GET',  
        url: f + '-' + eval(e * 1 + 1),  
        error: function(){
            $('#a, #i').hide();
        }  
    });  

    $.ajax({  
        type: 'GET',  
        url: f + '-' + eval(e - 1),  
        error: function(){
            $('#b, #i').hide();
        }  
    });  
</script>

  
a=location.href;  
b=a.分裂('-');  
c=b.长度;  
d=评估值(c-1);  
e=b[d];  
f=a.分裂('-'+e)[0];  
  
$('#pages').html('|');  
 
$.ajax({
键入:“GET”
url:f+'-'+eval(e*1+1)
错误:函数(){
$('a,'i').hide();
}  
    });  
$.ajax({
键入:“GET”
网址:f+'-'+eval(e-1),
错误:函数(){
$('b,'i').hide();
}  
  });  

有人能帮忙吗?

首先,我要解决的问题是让链接显示出来,我的第一个方法是验证脚本无法工作的页面是否包含必要的元素(在本例中,是一个id标记为“pages”的元素)

然后,我将使脚本仅在文档的其余部分完成加载后运行。有关更多详细信息,请参阅

如果您仍然遇到问题,我要做的下一件事是在Chrome或Firefox中打开它,并开始使用DOM检查器和Javascript调试器来“查看”代码运行时到底发生了什么。它足够短,不会太乏味,我认为这是最好的学习方式之一


除此之外,我不能提供太多。你没有提供足够的信息让我知道你可能有什么问题。如果你能自己缩小这个问题的范围,我们可能会更好地帮助你。

我认为你的代码中最重要的错误是读起来非常混乱,写起来也非常混乱。以下是一些解决问题的建议:

  • 删除所有的
    eval
    hack
  • 给你的变量命名,让它们有意义
  • 多行并不意味着更好,确保每一条指令都是必要的
  • 将脚本放在标题中,以便更容易阅读
  • 正如Subhash所指出的,确保在元素存在之前不要访问它们
这应该可以自行解决您的问题。如果没有,请用更人性化的代码更新您的问题,我很乐意调查:-)

“调试的难度是一开始编写代码的两倍。因此,如果你尽可能巧妙地编写代码,从定义上讲,你就没有足够的智慧来调试它。”–Brian Kernighan


你试过用
代替
吗?当你说“不工作”时,你能更具体一点吗?预期会发生什么以及具体发生什么?由于需要将documen.ready或pageshow或pagebeforeshow事件放入,因此
location.href
的值是多少。比如你为什么要用eval?为什么要将
onclick
属性生成为字符串?为什么要使用最不具信息性的变量名?你为什么用globals?为什么使用与ID同名的变量?所有这些都使您的代码很难理解。