我在class required
上获得div tag
,我想删除change function
text field
,但我无法达到该等级,请帮忙我到达this.parent.parent.closest('div')
<div class='required'>
<div>
<div>
<input type='text' value='123' onchange(removeRequired(this, this.parent.parent.closest('div')))/>
</div>
</div>
</div>
<script type='text/javascript'>
function removeRequired(elm1, elm2){
if ($(elm1).val()) {
$(elm2).removeClass('required');
}
}
</script>
答案 0 :(得分:1)
你不必搞乱javascript和jquery。你可以使用像这样的jquery绑定change事件,
$(document).ready(function () {
$("input[type='text'] ").change(function () {
$(this).closest(".required").removeClass("required");
});
});
答案 1 :(得分:1)
您希望根据输入是否为空来添加/删除所需的类。
$('.required').on('change', 'input', function(event) {
// add or remove required class
$(event.delegateTarget)
.toggleClass('required', this.value.length === 0);
});
它可以使用以下HTML:
<div class='required'>
<div>
<div>
<input type='text' value='123'/>
</div>
</div>
</div>
它在最外面的<div>
元素上设置事件委托,然后根据输入值设置或删除required
类。
答案 2 :(得分:0)
试试这个
$("input[type=text]").closest('div.required').removeClass("required");
onchange函数
$("input[type='text']").change(function(){
$(this).closest("div.required").removeClass("required");
});
或
$("input[type='text']").change(function(){
$(this).parents("div.required").removeClass("required");
});
答案 3 :(得分:0)
为什么不轻易使用id?
<div id="input-wrapper" class='required'>
<div>
<div>
<input type='text' value='123' onchange="removeRequired(this, $('#input-wrapper'))"/>
</div>
</div>
</div>
<script type='text/javascript'>
function removeRequired(elm1, elm2){
if ($(elm1).val()) {
$(elm2).removeClass('required');
}
}
</script>
答案 4 :(得分:0)
顺便说一下,如果你想与父母达到div class ='required',你需要3级!尽管如此,使用nearest()是一个更好的答案。
您可以尝试:
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> </script>
</head>
<div class='required'>
<div>
<div>
<input type='text' value='123' onchange="removeRequired.call(this)"/>
</div>
</div>
</div>
<script type='text/javascript'>
function removeRequired(){
$(this).parent().parent().parent().removeClass('required');
}
</script>