2010-10-05 62 views
1

我一直在玩jQuery,只是尝试在点击链接和隐藏/显示内容项目时替换文本字段。它似乎在IE中工作得很好,但我似乎无法让它在FF中工作。初学jQuery问题(FF/IE问题)

我的jQuery:

$(function() { 

$(".articles a").click(function() { 
    articlenumber = "1" 
    $(articlenumber).css("display", "none"); 
    articlenumber = $(this).attr("id"); 
    articlename = $(this).attr("name"); 
    articlenumber = '".' + articlenumber + '"'; 
    //alert(articlenumber); 
    //$(articlenumber).css("display", "inline"); 
    $(articlenumber).attr("style", "display:inline;") 
    $(".articletitle").text(articlename) 
}); 

而我的HTML这个(简体):

<a id="article1" name="Article Title1" href="#">Link</a> 
<a id="article2" name="Article Title2" href="#">Link</a> 
<div class="articlename">Title</div> 
<div class="article1" style="display:none;">Text 1</div> 
<div class="article2" style="display:none;">Text 2</div> 

任何建议,这是为什么不能在Firefox工作?还有什么我可以在这里清理?

+0

将var添加到开头似乎没有改变FF中的任何内容,IE仍然正常工作。在这种情况下,我只是宣布它,但我需要这些值为字符串。 – user466459 2010-10-05 05:17:52

+0

您已经多次使用相同的'id'。 'id'属性是唯一的。另外,看起来你使用'articlenumber'作为选择器,这很奇怪,因为这会选择不存在的'1'元素。 – 2010-10-05 05:20:21

+0

你正在使用萤火虫吗? http://getfirebug.com/ – 2010-10-05 05:20:37

回答

4
$(".articles a").click(function() { 
    articlenumber = "1" 
    $(articlenumber).css("display", "none"); 
    articlenumber = $(this).attr("id"); 
    articlename = $(this).attr("name"); 
    articlenumber = '".' + articlenumber + '"'; 
    $(articlenumber).attr("style", "display:inline;") 
    $(".articletitle").text(articlename) 
}); 

好吧,在你的脚本命令:

  • 声明变量您尝试分配值,终止该行并记住,1是数字不是一个字符串之前:

    articlenumber = "1" 
    

    var articlenumber = 1; 
    

  • jQuery通常期望标识符为idclass或元素类型(a,li等)。 idclass都不能以数字开头,他们必须以或者下划线_或者一个字母(加上其他一些我不记得的字符)开头,并且没有元素<1>。这可能是一个问题,因为有:

    $(articlenumber) 
    

    相当于之一:

    $(1) or $('1') 
    

    两者都是,或者应该是无效的(我认为)。

  • 然后你又重新分配articlenumber没有首先宣布它var(当你初始化articlename同样是在下面的行真。

  • 我不知道,如果这些是你的主要问题(我删除了你的注释代码),但修复了显而易见的问题,然后我们可以多说几句。

    我强烈建议你得到h当Firebug加载/与Firefox中的页面交互时,观看它的控制台。它会告诉你你遇到的主要问题。此外,作为附录,我强烈建议您使用Google Chrome(使用Web Inspector),Safari Webkit(如使用Chrome),Mozilla Firefox(使用Firebug,如上)和/或Opera开发您的网站/脚本(与蜻蜓)。这些浏览器和Web开发工具或多或少会迫使您正确开发您的脚本。一旦他们工作,并有效,然后在IE中尝试。

    更多的往往不是它会在那里工作,如果它的工作原理其他地方一样,在开发IE 第一似乎让你养成不良习惯,容易出错的JavaScript/jQuery的,然后变得迷茫,心慌或者沮丧当其他浏览器拒绝玩球时。

    +0

    很好的建议,谢谢大卫 - 我现在就试试这个,回复你。我很欣赏这些信息。 - 斯科特 – user466459 2010-10-05 05:46:27

    +0

    不用担心,总是一种享受=) – 2010-10-05 05:48:17

    0

    尝试改变这一行:

    $(".articletitle").text(articlename) 
    

    $(".articletitle").html(articlename) 
    

    而且我想知道如果类描述符(.articletitle和.articlename)是正确的? .articletitle类我没有在HTML中看到 - 只在JavaScript中,除非这是其他地方。