jQuery无法找到最接近的p

时间:2014-10-02 08:22:01

标签: javascript jquery

任务应该非常简单:从我的输入字段开始,找到最接近的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>

这是找到p元素的javascript代码

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

closest("p")什么都不返回。

知道我错过了什么吗?

1 个答案:

答案 0 :(得分:9)

您的HTML无效。使用a validator

<div>内不能有<p>。 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>

这意味着输入也不在段落内。因此,当您查找作为段落的输入的最近祖先时,不会有一个。