2011-04-19 28 views
0

我不能用prev更改css,我的错误在哪里? Fiddlelinkjquery prev()不使用输入

坦克看!


的CSS:

.i1 { 
    float: right; 
    height: 18px; 
    margin-top: 6px; 
} 
label { 
    border-bottom: 1px dotted #CCCCCC; 
    clear: both; 
    float: left; 
    height: 25px; 
    margin: 5px 0 0; 
    width: 450px; 
    line-height: 32px; 
} 

HTML:

<label>Titel:<input class="i1" type="text" name="titel" value="" /></label> 
<label>Vorname:<input class="i1" type="text" name="vorname" value="" /></label> 
<label>Nachname:<input class="i1" type="text" name="nachname" value="" /></label> 

的Jquery:

$("input").focus(function() { 
    $(this).prev("label").css("border-bottom", "1px dotted #63aec4"); 
    }); 
+0

您还没有正确写过html,首先必须在输入前关闭标签。然后你必须调用prev不是父母。因为标签不是输入的父项。这是prev元素。 – AEMLoviji 2011-04-19 15:31:17

+0

克里斯蒂安的帖子是正确的。 – AEMLoviji 2011-04-19 15:32:49

回答

5
$(this).parent("label").css("border-bottom", "1px dotted #63aec4"); 
+0

你认为它会起作用吗? – AEMLoviji 2011-04-19 15:27:22

+0

这一个工作! – user715449 2011-04-19 15:30:37

+0

不,它不是。你没有在jQuery中遇到问题,你在html中只有很少的问题。它只会用于你的html(这是不正确的)。你已经把标签内的输入标签。出于这个原因,父母()工作 – AEMLoviji 2011-04-19 15:33:54

0

你不是找ELEM ent 旁边的您的<input> - 您正在寻找它的父母

$(this).parent('label')... 
+0

谢谢Tomas and Calum – user715449 2011-04-19 15:07:03

0
$(this).closest("label").css("border-bottom", "1px dotted #63aec4"); 
3

那是因为你的推杆都在标签标签...尝试改变这样的HTML:

<label for="titel">Titel:</label><input tabindex="1" class="i1" type="text" name="titel" value="" /> 
<label for="vorname">Vorname:</label><input class="i1" type="text" name="vorname" value="" /> 
<label for="nachname">Nachname:</label><input class="i1" type="text" name="nachname" value="" /> 
1

看看这里请 my fiddle
首先你必须关闭你添加输入前添加标签标签。