变量做法或IF语句IE问题

时间:2011-05-23 14:56:45

标签: javascript jquery

我有这个(非常)简单的代码: ...

var myvar = $('.selected').text();

...

if (myvar == "foo") { //do some stuff...}

它适用于Firefox,而不适用于IE_6。有什么问题?

当然我alert($('.selected').text())给了我正确的价值。

我将代码更改为:

var myvar = "foo";
if (myvar == "foo") { //do some stuff...}

然后它适用于IE ..

任何解释?感谢。

3 个答案:

答案 0 :(得分:2)

您正在选择一组具有class="selected"的元素 - 如果列表中有多个元素,您可能会在实际的“foo”文本之前/之后得到一些空格。你确认不是这样吗? 如果可能,请尝试更改为使用id=selected - 即$("#selected"),它应该只为您提供一个元素。

答案 1 :(得分:0)

IE可能会给你一些Firefox没有的空白(反之亦然)。试试这个:

var myvar = $('.selected').text().replace(/^\s*(.*\S)\s*$/, '$1');

看看是否有帮助。

答案 2 :(得分:0)

是否在页面加载时调用代码?如果是这样,你有没有把它包裹在$(document).ready()函数中?

如果没有,它可能会在构建DOM时运行,并且因为IE构建DOM比Firefox慢,所以IE在运行此代码时可能没有构建.selected元素,而Firefox可能有。

我看到JQuery的一些问题乍一看似乎是跨浏览器问题,但结果却是因为没有使用$(document).ready()

但其他答案中的空格建议听起来似乎也是合理的。