我的简单表单字段如下:
<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>
我不明白为什么在输入[required]之前我无法选择标签:
$("input[required]").prev("label").css("color", "red");
我缺少什么?
答案 0 :(得分:1)
.prev()
只选择兄弟姐妹,因为INPUT是其父DIV的唯一子节点,所以它没有兄弟姐妹。因此,您需要使用.parent()
来转到DIV,然后您可以使用.prev()
转到标签。
$("input[required]").parent().prev("label").css("color", "red");
答案 1 :(得分:1)
您可以通过为包含控制标签的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>