我有这个(非常)简单的代码: ...
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 ..
任何解释?感谢。
答案 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()
。
但其他答案中的空格建议听起来似乎也是合理的。