【发布时间】:2017-09-28 03:03:06
【问题描述】:
我遇到了一个非常离奇的案例。用我的元素
<div class="main-form col-sm-12">
<label class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input">
<span class="custom-control-indicator"></span>
<span class="custom-control-description">Update this Ticket?</span>
</label>
<div class="form-group row">
<label for="update-subject" class="col-sm-3 col-form-label">Subject</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="update-subject" disabled>
</div>
</div>
<div class="form-group row">
<label for="update-body" class="col-sm-3 col-form-label">Body</label>
<div class="col-sm-9">
<textarea class="form-control" rows="5" id="update-body" disabled></textarea>
</div>
</div>
<div class="form-group row">
<label for="update-email" class="col-sm-3 col-form-label">Email of contact</label>
<div class="col-sm-9">
<input type="email" class="form-control" id="update-email" disabled>
</div>
</div>
<div class="form-group row">
<label class="col-sm-3 col-form-label">Priority</label>
<div class="col-sm-3">
<input type="text" class="form-control" disabled>
</div>
<div class="col-sm-3" style="display: none;">
<select class="form-control col-sm-3" id="update-priority">
<option value="normal">Normal</option>
<option value="low">Low</option>
<option value="high">High</option>
<option value="urgent">Urgent</option>
</select>
</div>
<label class="col-sm-3 col-form-label" style='text-align: center;'>Status</label>
<div class="col-sm-3">
<input type="text" class="form-control" disabled>
</div>
<div class="col-sm-3" style="display: none;">
<select class="form-control col-sm-3" id='update-status'>
<option value="new">New</option>
<option value="open">Open</option>
<option value="pending">Pending</option>
<option value="hold">Hold</option>
<option value="solved">Solved</option>
<option value="closed">Closed</option>
</select>
</div>
</div>
<div class="form-group row">
<label for="update-comment" class="col-sm-3 col-form-label">Comment</label>
<div class="col-sm-9">
<textarea class="form-control" rows="5" id="update-comment" disabled></textarea>
</div>
</div>
</div>
当我检查 $('.main-form .form-group:nth-child(4) input') 时,它什么都不返回,而是返回 2 个 input 元素。我尝试使用$('.main-form .form-group nth-child(n)') 运行多个日志。当它为 1 时,它什么也不返回,first-child 也是如此。当它为 2 时,它返回第一个元素。当它为 5 时,它返回具有两个 input 子元素的元素。当它为 6 时,它返回与 last-child 相同的元素。这是完全不可理解和荒谬的。有人可以帮我解决这个问题吗?
【问题讨论】:
-
@BenM 应该是
2 -
你认为
.form-grouo:nth-child(4)匹配哪个元素? -
@BenM
:nth-child()CSS 选择器不是从零开始的。它指出here 由于 jQuery 的 :nth- 选择器的实现严格源自 CSS 规范,因此 n 的值是“1-indexed”,这意味着计数从 1 开始。跨度> -
@BenM 从上到下,第四个元素应该是包含两个
input-priority和status的元素
标签: javascript jquery html css-selectors