-2

我的网站不想显示此脚本。当我把它放在它显示的索引页面上但是当我把它放在其他页面上时没有任何反应

<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>

有人可以帮忙吗?

4

2 回答 2

1

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

  • 删除所有eval黑客;
  • 命名你的变量,让它们有意义;
  • 更多的行并不意味着更好,确保每条指令都是必要的;
  • 将您的脚本放在标题中,以便于阅读;
  • 正如 Subhash 指出的那样,确保在元素存在之前不要访问它们。

这应该可以自行解决您的问题。如果没有,请使用更人性化的代码更新您的问题,我很乐意对其进行调查:-)

“首先,调试的难度是编写代码的两倍。因此,如果您尽可能巧妙地编写代码,那么根据定义,您还不够聪明,无法对其进行调试。” ——布赖恩·克尼汉

于 2013-06-28T06:01:41.123 回答
-1

好吧,首先解决让链接显示的问题,我的第一个方法是验证脚本不起作用的页面是否包含必要的元素(在这种情况下,一个带有 id 标签的元素页”)。

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

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

除此之外,我真的不能提供太多。你没有给我足够的信息,至少让我知道你可能遇到什么问题。如果您可以自己缩小问题范围,我们或许可以为您提供更好的帮助。

于 2013-06-28T05:52:43.810 回答