我一直在玩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中无效的建议吗?还有什么我可以清理的吗?
答案 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)
});
好的,按照你的脚本顺序:
articlenumber = "1"
应该是
var articlenumber = 1;
id
,class
或元素类型(a
,li
等)。 id
和class
都不能以数字开头,它们必须以_
或下划线<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中..除非那是在其他地方。