我擁有包含不同輸入元素的「組件」。這些組件有一個複選框,允許用戶切換元素的啓用/禁用。這是當前禁用輸入和選擇的代碼。jQuery查找具有特定類型的下一個元素的元素
$(".activeComponentToggle input:checkbox").on("change", function() {
if ($(this).is(':checked')) {
$(this).closest("div.component").addClass("activeComponentWell");
$(this).closest("div.component").removeClass("inactiveComponentWell");
$(this).closest("div.component").find("input.form-control").prop('disabled', false);
$(this).closest("div.component").find("select.form-control").prop('disabled', false);
} else {
$(this).closest("div.component").addClass("inactiveComponentWell");
$(this).closest("div.component").removeClass("activeComponentWell");
$(this).closest("div.component").find("input.form-control").prop('disabled', true);
$(this).closest("div.component").find("select.form-control").prop('disabled', true);
}
});
現在我也有這樣的HTML元素
<div class="input-group date" id="datetimepickerRanged11">
<input type="text" id="datepickerRanged811" class="form-control">
<span class="input-group-addon"><span class="glyphicon-calendar glyphicon"></span></span></div>
要禁用這個元素,我需要解除綁定跨度unbind("click");
我怎樣才能做到這一點的點擊?如果輸入的next()元素是一個跨度,我需要解除它。
您可以使用nextAll(),您可以指定元素的您正在尋找的類型。對於span:nextAll('span:first'),同樣適用於prevAll() –
另外,我建議你閱讀[DRY](http://en.wikipedia.org/wiki/Don't_repeat_yourself)和用一個替換8個對'$(this).closest(「div.component」)'的調用。你也可能想了解[jQuery chaining](http://tobiasahlin.com/blog/quick-guide-chaining-in-jquery/)。 – jfriend00
@KamleshKushwaha可以工作,但只適用於第一個具有跨度的元素。 –