Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 添加动态行无法获取创建的select输入的ref_Javascript_Jquery - Fatal编程技术网

Javascript 添加动态行无法获取创建的select输入的ref

Javascript 添加动态行无法获取创建的select输入的ref,javascript,jquery,Javascript,Jquery,在我的Bootstrap4.1/jquery应用程序中,我有一个由多行组成的表单,其中有1个隐藏输入、1个文本输入和2个选择。比如: <div class="controls"> <form role="form" autocomplete="off"> <div class="row entry input-group-append m-0 p-0" style="width: 100%;"> <div class="

在我的Bootstrap4.1/jquery应用程序中,我有一个由多行组成的表单,其中有1个隐藏输入、1个文本输入和2个选择。比如:

<div class="controls">
<form role="form" autocomplete="off">



    <div class="row entry input-group-append m-0 p-0" style="width: 100%;">

        <div class=" col-5 p-1">
            <input type="hidden" id="modified_0" name="modified_0" value="">
            <input class="form-control editable_field" value="To do line 2..." id="todo_text_0" name="todo_text_0" type="text" maxlength="255" autocomplete="off" placeholder="Enter new todo task" onchange="javascript:todoOnChange(0); ">
        </div>

        <div class=" col-3 p-1">
            <select class="form-control editable_field" id="todo_priority_0" name="todo_priority_0" data-placeholder=" -Select Is Featured- " onchange="javascript:todoOnChange(0); "><option value="" label=" -Select Priority- "></option><option value="1">No</option><option value="2">Low</option><option value="3" selected="">Normal</option><option value="4">High</option><option value="5">Urgent</option><option value="6">Immediate</option></select>
        </div>

        <div class=" col-3 p-1">
            <select class="form-control editable_field " id="todo_completed_0" name="todo_completed_0" data-placeholder=" -Select Is Featured- " onchange="javascript:todoOnChange(0); "><option value="" label=" -Select Completed- "></option><option value="1" selected="">Completed</option><option value="0">Opened</option></select>
        </div>
        <div class=" col-1 p-1">
                            <span class="input-group-append-btn">
                                <button class="btn btn-danger todo-btn-add" type="button">
                                    <span class="fa fa-minus"></span>
                                </button>
                            </span>
        </div>

    </div>
    <div class="row entry input-group-append m-0 p-0" style="width: 100%;">

        <div class=" col-5 p-1">
            <input type="hidden" id="modified_1" name="modified_1" value="">
            <input class="form-control editable_field" value="Write user's on using frontend application part lorem  ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod  tempor incididunt ut." id="todo_text_1" name="todo_text_1" type="text" maxlength="255" autocomplete="off" placeholder="Enter new todo task" onchange="javascript:todoOnChange(1); ">
        </div>

        <div class=" col-3 p-1">
            <select class="form-control editable_field" id="todo_priority_1" name="todo_priority_1" data-placeholder=" -Select Is Featured- " onchange="javascript:todoOnChange(1); "><option value="" label=" -Select Priority- "></option><option value="1">No</option><option value="2">Low</option><option value="3">Normal</option><option value="4" selected="">High</option><option value="5">Urgent</option><option value="6">Immediate</option></select>
        </div>

        <div class=" col-3 p-1">
            <select class="form-control editable_field " id="todo_completed_1" name="todo_completed_1" data-placeholder=" -Select Is Featured- " onchange="javascript:todoOnChange(1); "><option value="" label=" -Select Completed- "></option><option value="1">Completed</option><option value="0" selected="">Opened</option></select>
        </div>
        <div class=" col-1 p-1">
                            <span class="input-group-append-btn">
                                <button class="btn btn-danger todo-btn-add" type="button">
                                    <span class="fa fa-minus"></span>
                                </button>
                            </span>
        </div>

    </div>
    <div class="row entry input-group-append m-0 p-0" style="width: 100%;">

        <div class=" col-5 p-1">
            <input type="hidden" id="modified_2" name="modified_2" value="">
            <input class="form-control editable_field" value="Prepare list of user's having access to backend part lorem  ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod  tempor incididunt ut..." id="todo_text_2" name="todo_text_2" type="text" maxlength="255" autocomplete="off" placeholder="Enter new todo task" onchange="javascript:todoOnChange(2); ">
        </div>

        <div class=" col-3 p-1">
            <select class="form-control editable_field" id="todo_priority_2" name="todo_priority_2" data-placeholder=" -Select Is Featured- " onchange="javascript:todoOnChange(2); "><option value="" label=" -Select Priority- "></option><option value="1" selected="">No</option><option value="2">Low</option><option value="3">Normal</option><option value="4">High</option><option value="5">Urgent</option><option value="6">Immediate</option></select>
        </div>

        <div class=" col-3 p-1">
            <select class="form-control editable_field " id="todo_completed_2" name="todo_completed_2" data-placeholder=" -Select Is Featured- " onchange="javascript:todoOnChange(2); "><option value="" label=" -Select Completed- "></option><option value="1">Completed</option><option value="0" selected="">Opened</option></select>
        </div>
        <div class=" col-1 p-1">
                            <span class="input-group-append-btn">
                                <button class="btn btn-success todo-btn-add" type="button">
                                    <span class="fa fa-plus"></span>
                                </button>
                            </span>
        </div>

    </div>

</form>
<br>
<small>Press <span class="fa fa-plus"></span> to add to do item</small>
</div>
todo\u select\u优先级变量未引用预期的第一个select输入

哪种方法有效

谢谢

$.next()
仅在其同级中查找元素。如果要在其子元素中搜索,请使用
find()
和精确选择器


A.
a2
B
       $(document).on('click', '.todo-btn-add', function(e)
         {
             e.preventDefault();
             var todos_count= parseInt($("#todos_count").val())+1

             var controlForm = $('.controls form:first'),
             currentEntry = $(this).parents('.entry:first'),
             newEntry = $(currentEntry.clone()).appendTo(controlForm);

             var modifiedHidden= newEntry.find('input');
             modifiedHidden.val('');
             modifiedHidden.attr('id','todo_modified_'+todos_count);     // That works OK
             modifiedHidden.attr('name','todo_modified_'+todos_count);

             var todo_text_input= modifiedHidden.next( "input" )
             todo_text_input.val('');
             todo_text_input.attr('id','todo_text_'+todos_count);
             todo_text_input.attr('name','todo_text_'+todos_count);      // That works OK

             var todo_select_priority= newEntry.next( "select" )         // But this fails ?

             todo_select_priority.val('');
             todo_select_priority.attr('id','todo_priority_'+todos_count);
             todo_select_priority.attr('name','todo_priority_'+todos_count);

             var todo_select_completed= todo_select_priority.next( "select" ) // But this fails too ?
             todo_select_completed.val('');
             todo_select_completed.attr('id','todo_completed_'+todos_count);
             todo_select_completed.attr('name','todo_completed_'+todos_count);
console.log($('.a').next('div')) // div.b
console.log($('.a').next('a2')) // undefined