Javascript html在多个级别中获取div标记

Javascript html在多个级别中获取div标记,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我在div标签上获得了所需的类,我想删除它以更改文本字段的函数,但我无法达到该div级别,请帮助我达到该级别。parent.parent.closest'div' 试试这个 $("input[type=text]").closest('div.required').removeClass("required"); onchange函数 $("input[type='text']").change(function(){ $(this).closest("div.required").rem

我在div标签上获得了所需的类,我想删除它以更改文本字段的函数,但我无法达到该div级别,请帮助我达到该级别。parent.parent.closest'div'

试试这个

$("input[type=text]").closest('div.required').removeClass("required");
onchange函数

$("input[type='text']").change(function(){
  $(this).closest("div.required").removeClass("required");
});


您不必搞乱javascript和jquery。您可以像这样用jquery绑定变更事件

$(document).ready(function () {
    $("input[type='text'] ").change(function () {
        $(this).closest(".required").removeClass("required");
    });
});

似乎您想要的是根据输入是否为空来添加/删除所需的类

$('.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>
它在最外面的元素上设置事件委派,然后根据输入值设置或删除所需的类


为什么不容易使用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>

顺便说一句,如果你想与家长一起达到div class='required',你需要3个级别!尽管使用“最近”是一个更好的答案

您可以尝试:

<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>

您拥有的是无效的HTML。您的onchange属性是无效的HTML,因此无论如何都无法工作。onchange=removeRequired。。。
<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>
<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>