这是我的jquery代码:
$(document).ready(function() {
if ($('#login').length == 0) {
$('#login').css('background', "url('/css/login-bg.gif') 2px center no-repeat");
}
if ($('#password').length == 0) {
$('#password').css('background', "url('/css/password-bg.gif') 2px center no-repeat");
}
$('#login').focus(function() {
$(this).css('background', 'transparent');
});
$('#password').focus(function() {
$(this).css('background', 'transparent');
});
});
它适用于Firefox但不适用于IE7或IE8。为什么呢?
此代码的目的:它应该在登录表单中显示用户友好的文本,以便用户知道填写用户名和密码输入字段的内容。这很重要,因为输入字段没有标签(我知道......但客户只是不想要标签)。
if($('#selector')。length == 0)条件存在,因为如果用户在浏览器中保存他/她的用户名和密码,浏览器将自动填写保存的值,因此确保背景图像不会与它们重叠。
答案 0 :(得分:8)
您应该使用:
if($('#selector').val() == '')
而不是
if ($('#selector').length == 0)
$('#selector').length
只会告诉您匹配了多少元素,而不是所选元素的值的长度。见这里:http://api.jquery.com/length/