浏览器中的脚本与我在代码编辑器中的文件不同。为什么?

时间:2013-06-07 08:37:25

标签: javascript jquery

我正在尝试根据变量来修改我的登录表单,如果登录凭据正确,则该变量为空。此变量为msg

现在,如果您看到此jsfiddle example(点击“运行”进行测试,它会动摇),它运行正常,但如果我尝试在我的应用程序中使用,那么它会在行$this is not defined中出错{1}}。

我在代码中写了$this.css({,但控制台显示$(this).css({错误。

请注意,它不必对变量执行任何操作,因为我从服务器端获取变量,就像用户填写错误凭据时$this.css({非空。我使用$message检查了这个条件。

我在我的应用程序中使用jQuery 1.7。

我的应用中使用的代码是:

alert box

PS:我尝试过清理缓存,但我仍然收到此错误:http://i.imgur.com/TNBgQM8.png

编辑2:我已经清理了缓存和所有浏览器数据,但我仍然可以看到它正在将<html> <head> <title>Test</title> <meta http-equiv="Content-Type" content="text/html;"> <script type="text/javascript" src="xyz/js/jquery.js"></script> <script type="text/javascript"> $(function() { $("input:text:visible:first").focus(); var msg = "$message" if (msg.length!==0){ alert("message is not empty"); jQuery.fn.shake = function(intShakes, intDistance, intDuration) { this.each(function() { $(this).css({ position: "relative" }); for (var x = 1; x <= intShakes; x++) { $(this).animate({ left: (intDistance * -1) }, (((intDuration / intShakes) / 4))).animate({ left: intDistance }, ((intDuration / intShakes) / 2)).animate({ left: 0 }, (((intDuration / intShakes) / 4))); } }); return this; }; $('#login').shake(2, 13, 250); } });</script> </head> <body class="login login-action-login wp-core-ui"> <div id="wrapper"> <div id="login"> <form name="form_login1" action="$action" method="post"> <input type="hidden" name="command" value="login"> <p><label>Username<br> <if condition="enable_password_cookie"> <input type="text" name="login2" value="$login_from_password_cookie" onchange="document.form_login2.login.value = this.value" id="user_login" class="input" size="20" tabindex="1"> </if> <else> <input type="text" id="user_login" class="input" name="login2" size="20" onchange="document.form_login2.login.value = this.value"> </else> </label></p> </form> <form name="form_login2" action="$action" method="post"> <input type="hidden" name="login"> <input type="hidden" name="command" value="login"> <input type="hidden" name="extra_param" value="$extra_param"> <p> <label>Password <input type="password" name="password" is="password" id="password" class="input" value="" size="20"> </label> </p> <p class="submit"> <input type="submit" value="Login" onclick="javascript:submit_login();" id="wp-submit" class="button button-primary button-large"> </p><br><br> <p class="error">$message</p> </div><br> </form> </div> </div> </html> 更改为$(this).css。我不明白为什么? :/

2 个答案:

答案 0 :(得分:0)

1)你的情况下this不是jquery对象。使用$(this)

2)如果浏览器显示的代码与实际目录中的代码不同,请更新应用程序的缓存。

3)您在浏览器调试器中看到的是您的浏览器获得的实际代码。如果您确定使用$ this代替$(this)的代码是实际代码,只需将$ this替换为$(this)

答案 1 :(得分:0)

roasted's comment解决了我的问题。

我必须将$(this)更改为$( this )