2014-10-02 144 views
0

該任務應該非常簡單:從我的輸入字段開始,找到最接近的p並更改其樣式。jQuery找不到最接近的p

唯一的事情是:我找不到我的p ...

<p> 
    <div class="form-group"> 
    <label for="Email" class="control-label col-md-2">Email</label> 
    <div class="col-md-10"> 
     <input type="email" value="" name="Email" class="form-control" /> 
    </div> 
    </div> 
</p> 

這是javascript代碼,找到p元素

$('[name=Email]').closest("p").css('background-color', 'red') 

closest("p")回報什麼。

任何想法我失蹤?

+0

'$('[name = Email]')'的長度是多少? – 2014-10-02 08:23:30

+0

@ Roamer-1888長度爲1 – 2014-10-02 08:25:05

+0

你最好還是使用ID字段,然後使用'$('#Email')'。 'name'字段只對表單提交非常有用,對於DOM操作不是很有用。 – Alnitak 2014-10-02 08:25:20

回答

9

您的HTML無效。使用a validator

<p>中不能有<div>。 div開始標記隱含地結束段落元素。段落結束標記然後被忽略,因爲沒有關閉的段落。

您的標記相當於:

<p></p> 
<div class="form-group"> 
    <label for="Email" class="control-label col-md-2">Email</label> 
    <div class="col-md-10"> 
     <input type="email" value="" name="Email" class="form-control" /> 
    </div> 
</div> 

這意味着輸入也沒有段落裏。所以當你尋找最接近輸入的祖先是一個段落時,沒有一個。

+0

太棒了!感謝您對我的任何問題最快的解決方案,在這裏stackoverflow – 2014-10-02 08:48:36