Jquery 加载时应用类

Jquery 加载时应用类,jquery,Jquery,我想应用以下样式='position:relative;左:42px;'添加到标签。而onfocus必须删除这种样式 <label for'13321'>Name</label><input type='text' id='13321' class='box'> <label for'14422'>Name</label><input type='text' id='14422' class='box'> 名称 名称 Jq

我想应用以下样式=
'position:relative;左:42px;'添加到标签。而onfocus必须删除这种样式

<label for'13321'>Name</label><input type='text' id='13321' class='box'>
<label for'14422'>Name</label><input type='text' id='14422' class='box'>
名称
名称
Jquery:

$(document).ready(function(){
$('input.box').each(function(){
   if($(this).val()=="") {
       $(this).addClass('new-class');
   }
})
   $('input.box').focus(function(){
       $(this).removeClass('new-class')
   })
})
CSS:


将样式放入一个类中,说
yourClass
,然后可以使用以下命令:

$(function() {
    $('input.box').filter(function() {
         return $(this).val() === "";
    })
    .prev('label')   // go to label
      .addClass('yourClass')
    .end()    // back to input
    .one('focus', function() {
         $(this).prev('label').removeClass('yourClass');
    });
});
或者不使用
过滤器
(您必须测试哪些性能更好):

编辑:我没有注意到您想要将类添加到标签中。固定的

更新:如果要重新应用该类,如果该值保持为空,则必须添加一个
blur
侦听器,并使用
focus
而不是上面的
one

.focus(function() {
    $(this).prev('label').removeClass('yourClass');
})
.blur(function() {
    if($(this).val() === "") {
        $(this).prev('label').addClass('yourClass');
    }
})
css

js

演示


所以,我不明白,你是在尝试应用一个类还是一种风格?这是行不通的。您必须迭代所有输入元素
if($('input.box').val()==“”)
将只比较第一个找到的元素的值。他希望类与
标签
而不是
文本
 $('input.box:not([value]), input.box[value=""]')
   .prev('label')
     .addClass('yourClass')
   .end()
   .one(...
.focus(function() {
    $(this).prev('label').removeClass('yourClass');
})
.blur(function() {
    if($(this).val() === "") {
        $(this).prev('label').addClass('yourClass');
    }
})
.empty{
    position: relative; left: 42px;        
}
  $(function() {
      $(":input:text").each(function(){
         if( $(this).val() == "")
         {
             $(this).prev("label").addClass("empty");
             $(this).focus(function(){
                     $(this).prev("label").removeClass("empty");
                 })
         }
      });
   });