初学者jQuery问题(FF / IE问题)

时间:2010-10-05 05:11:18

标签: jquery firefox

我一直在玩jQuery,只是尝试通过点击链接替换文本字段并隐藏/显示内容项。它似乎在IE中工作得很好,但我似乎无法让它在FF中工作。

我的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中无效的建议吗?还有什么我可以清理的吗?

2 个答案:

答案 0 :(得分: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或元素类型(ali等)。 idclass都不能以数字开头,它们必须以_或下划线<1>或字母(以及其他几个我记不住的字符)开头,并且没有元素$(articlenumber) 。这可能是一个问题,因为:

    $(1) or $('1')
    

    相当于:

    articlenumber

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

  • 然后,您再次重新分配var ,而首先将其声明为articlename(初始化时,以下行中也是如此) {{1}}。

  • 我不确定这些是否是您的主要问题(我删除了已注释掉的代码),但修复了明显的问题,然后我们可以进行更多的讨论。

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

    通常它会在那里工作,如果它在其他地方工作,在IE中开发首先似乎允许你养成坏习惯,容易出错的JavaScript / jQuery,然后变得困惑当其他浏览器拒绝玩球时,会感到慌乱或沮丧。

    答案 1 :(得分:0)

    尝试更改此行:

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

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

    另外,我想知道类描述符(.articletitle和.articlename)是否正确? .articletitle类我没有在HTML中看到 - 仅在javascript中..除非那是在其他地方。

    相关问题