Firefox的jQuery和文本文件错误

Firefox的jQuery和文本文件错误,jquery,firefox,text,split,hide,Jquery,Firefox,Text,Split,Hide,我很抱歉这个标题可能会让人困惑,但我不太确定如何给这个帖子贴上标签。无论如何,我正在开发一个在IE中运行良好的web应用程序,但由于某些原因,它在Firefox中似乎失败了。我知道一开始很多应用程序都会出现这种情况,但Firefox开发控制台给我的错误并没有多大意义。下面是它将出现的错误: $("#workNews").text(lines[i++]).hide is not a function syntax error data.split is not a function 第一个错误是

我很抱歉这个标题可能会让人困惑,但我不太确定如何给这个帖子贴上标签。无论如何,我正在开发一个在IE中运行良好的web应用程序,但由于某些原因,它在Firefox中似乎失败了。我知道一开始很多应用程序都会出现这种情况,但Firefox开发控制台给我的错误并没有多大意义。下面是它将出现的错误:

$("#workNews").text(lines[i++]).hide is not a function
syntax error
data.split is not a function
第一个错误是声称以下代码行正在中断,因为它认为jQuery.hide()不是函数

$("#workNews").text(lines[i++]).hide().fadeIn(500).delay(4000).fadeOut(500);
现在,这行代码以前在IE和Firefox中都可以使用,但现在突然中断了。第三个错误也是如此,因为它认为用分隔符分隔字符串的“split()”方法不是函数。同样,这条线以前工作过,现在突然不行了。“语法错误”真的很奇怪。。。我正在使用“$.get()”方法打开和读取文本文件中的行,该方法工作良好,在IE中仍然有效。但是,Firefox开发人员控制台告诉我存在语法错误,并继续指向文件中的一行文本

我不确定是否有一件简单的事情需要在代码中的其他地方修复,但这些错误并不明显,但当遇到这样的问题时,我想知道是否有“通常的原因”导致这种情况发生。如果您需要查看更多我的代码,只需询问。多谢各位

编辑#1:为了安全起见,这里是假设所有三个“错误”都发生的整个函数。同样,直到最近,这个功能在IE和Firefox中都运行良好

function GetWorkNews() {
    var lines = new Array(); var i = 0;
    $.get(textFile, function(data) {
        lines = data.split("\n");
    });

    $("#workNews").text(lines[i++]).hide().fadeIn(500).delay(4000).fadeOut(500);
    setInterval(function() {
        $("#workNews").text(lines[i++]).hide().fadeIn(500).delay(4000).fadeOut(500);

        if(i == lines.length) {
            i = 0;
        }
    }, 5000);
}
编辑#2:当我在修补时,我注释掉了调用hide()函数的第一行jQuery: $(#workNews”).text(行[i++]).hide().fadeIn(500)、delay(4000)、fadeOut(500);
虽然FF开发控制台仍然告诉我文本文件中有语法错误,但现在一切似乎都正常了“我把这句话注释掉了,因为它只是用文字给我的横幅加上了前缀,这样它就不必等待五秒钟,第一个标题就会显示出来,但我还是喜欢它。你知道为什么那一行断开了,但setInterval()函数中的那一行却不完全相同吗?

你试过更改选择器吗?而不是#工作新闻=>#工作新闻

$('#工作新闻')。文本(…)


大写字母:o。我想。

作为总结,我找到了两种可能的解决方案。第一个也是不太可取的方法是删除代码的起始行。第二个是分解问题行的函数调用,以便:

$("#workNews").text(lines[i++]).hide().fadeIn(500).delay(4000).fadeOut(500);
变成这样:

$("#workNews").text(lines[i++]);
$("#workNews").hide();
$("#workNews").fadeIn(500);
$("#workNews").delay(4000);
$("#workNews").fadeOut(500);

显然FF不喜欢像IE允许的那样把这些函数调用链接在一起。尽管如此,FF开发人员的控制台仍然抱怨正在读取的文本文件中存在某种语法错误,但它似乎没有导致任何重大错误。

我个人不明白为什么camel case会破坏代码,特别是因为我的几乎所有变量都实现了相同的样式。尽管如此,我还是试过了。。。没有执行任何操作。它不会中断或产生这种类型的错误,只是找不到选择器的匹配项。您能否确认jquery正在FF中加载?似乎罪魁祸首是
split()
函数。对字符串以外的任何对象使用
split()
将抛出
split不是函数
错误。你检查过数据的有效性了吗?我知道除了GetWorkNews()之外,我还有其他六个使用jQuery的函数,所有这些函数在IE和FF中都可以正常工作,所以我假设它加载正确。我仔细检查了AJAX GET调用返回的数据,事实上它是一个由换行符分隔的大字符串。我还尝试用相对路径字符串替换“textFile”变量名,这是我以前使用过的。如果我使用$.html()而不是$.text,$.hide()会起作用吗?如果是,这可能会修复错误吗?