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


这是找到p元素的javascript代码

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


closest("p")不返回任何内容。

知道我缺少什么吗?

最佳答案

您的HTML无效。使用a validator

<div>中不能有<p>。 div start标签隐式结束了段落元素。然后,段落结束标记将被忽略,因为没有关闭的段落可以关闭。

您的标记等同于:

<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>


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

关于javascript - jQuery找不到最接近的p,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26156899/

10-12 15:11