这里有问题, 要么因为没有看到明显的东西而感到愚蠢,要么在今天下午改变定义变量的方式......
$(function() {
console.log('something');
var marquee = $('#marquee');
var selected = $('#marquee ul li a img').first();
var link = $('#marquee ul li a');
var string = 'something else';
});
当我来到控制台时,'某些东西'未记录。 当我输入' marquee'时,返回jQuery对象,一切都很好。 但是,当我输入'选择',' link',' string'时,我会收到参考错误,变量未定义。
我清除了缓存,更改了浏览器,删除了' var'在名字之前,总是一样的。 有人知道发生了什么事吗?
答案 0 :(得分:0)
我无法重现您的任何问题。我把你的javascript放到一个jsfiddle中,它正是我所期望的:log" something"到控制台,我无法访问任何超出范围的变量。
$(function() {
console.log('something');
var marquee = $('#marquee');
var selected = $('#marquee ul li a img').first();
var link = $('#marquee ul li a');
var string = 'something else';
});
答案 1 :(得分:-1)
问题是代码永远不会执行。您认为创建了marquee变量,但事实并非如此,因为在控制台中,像marquee
这样的输入值将打印一个id设置为输入值的元素。因此,如果您在控制台中键入my_div
并且未设置my_div变量,则会返回ID为" my_div"的元素。 (如果你不相信我,你可以自己测试一下)。这意味着永远不会设置marquee
变量。
以下解决方案之一可能有效,也可能无效。
将代码放在$(document).ready(function(){ });
内,而不是放在$(function(){ });
内。
注意:(这可能只是您正在使用的jQuery版本的错误。
在您的body
标记中的所有html下添加脚本,而不是head
标记。