输入前查找标签[必填]

Finding Label Before Input[required]

我的简单表单域如下所示:

 <div class="form-group " id="requestor_last_name-input">
      <label class="control-label col-sm-2" for="requestor_last_name">Last Name</label>
      <div class="col-sm-10">
        <input type="text" class="form-control" name="requestor_last_name" id="requestor_last_name" size="50" maxlength="50" value="Flaherty" required>
      </div>
    </div>

我不明白为什么我不能 select 输入前的标签 [required] 像这样:

$("input[required]").prev("label").css("color", "red");

我错过了什么?

.prev() 仅选择兄弟姐妹,并且由于 INPUT 是其 parent DIV 中唯一的 child,因此它没有兄弟姐妹。所以你需要使用.parent()来获取DIV,然后你可以使用.prev()获取标签。

$("input[required]").parent().prev("label").css("color", "red");

您可以通过为包含控件标签的 div 分配一个 ID 来实现此目的。

$(document).ready(function(){
    $("button").click(function(){
        alert( $("#inputdiv").prev(".control-label").html());
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="form-group " id="requestor_last_name-input">
      <label class="control-label col-sm-2" for="requestor_last_name">Last Name</label>
      <div id="inputdiv" class="col-sm-10">
        <input type="text" class="form-control" name="requestor_last_name" id="requestor_last_name" size="50" maxlength="50" value="Flaherty" required>
      </div>
    </div>



<button>Get Label</button>