2016-09-19 9 views
1

В настоящее время я ищу совет по некоторому jQuery, поскольку я думаю, что делаю это неправильно, хотя я получаю результат, который я хочу.jQuery Navigation - изменение ввода входных данных parent-parent-parent-parent-sibling

Я хочу изменить значение входа на значение ближайшего входа с классом .milestone, когда он изменен. Ввод, который я хочу изменить, - это вход для ввода, и я хочу, чтобы он равным значением пересмотренного ввода при изменении. Ниже приведен HTML, который я не могу изменить, так как это продукт.

<div class="container area dform_section_area6"> 
    <div class="box box13 two"> 
     <div class="dform_section_box13"> 
      <div style="clear: both;" data-type="html" data-name="business_case_approved_pmr" id="dform_widget_html_business_case_approved_pmr" data-active="true" class="dform_widget dform_widget_type_html dform_widget_business_case_approved_pmr"> 
       <p>Business Case Approved</p> 

      </div> 
     </div> 
    </div> 
    <div class="box box14 two"> 
     <div class="dform_section_box14"> 
      <div data-type="date" data-name="bc_approved_planned_pmr" data-active="true" data-agentonly="false" class="container dform_widget dform_widget_field dform_widget_type_date dform_widget_bc_approved_planned_pmr dform_widget_bc_approved_planned_bc"> 
       <div> 
        <label for="dform_widget_bc_approved_planned_pmr">Planned</label> 
       </div> 
       <div> 
        <input id="dform_widget_bc_approved_planned_pmr" type="date" name="bc_approved_planned_pmr" data-mapfrom="bc_approved_planned_bc" class="dform_field_active"> 
       </div> 
      </div> 
     </div> 
    </div> 
    <div class="box box15 two"> 
     <div class="dform_section_box15"> 
      <div data-type="select" data-name="bcapproval_on_target" data-active="true" data-agentonly="false" class="container dform_widget dform_widget_field dform_widget_type_select dform_widget_bcapproval_on_target dform_widget_"> 
       <div> 
        <label for="dform_widget_bcapproval_on_target">On target?</label> 
       </div> 
       <div> 
        <select id="dform_widget_bcapproval_on_target" name="bcapproval_on_target" class="dform_field_active"> 
         <option></option> 
         <option value="Yes" data-off="bc_approved_revised_pmr">Yes</option> 
         <option value="No" data-on="bc_approved_revised_pmr">No</option> 
        </select> 
       </div> 
      </div> 
     </div> 
    </div> 
    <div class="box box16 two"> 
     <div class="dform_section_box16"> 
      <div data-type="date" data-name="bc_approved_revised_pmr" data-active="false" data-agentonly="false" class="container dform_widget milestone mrevise dform_widget_field dform_widget_type_date dform_widget_bc_approved_revised_pmr dform_widget_"> 
       <div> 
        <label for="dform_widget_bc_approved_revised_pmr">*Revised</label> 
       </div> 
       <div> 
        <input id="dform_widget_bc_approved_revised_pmr" type="date" name="bc_approved_revised_pmr" class=""> 
       </div> 
      </div> 
     </div> 
    </div> 
    <div class="box box17 two"> 
     <div class="dform_section_box17"> 
      <div data-type="date" data-name="gate_3_actual1" data-active="true" data-agentonly="false" class="container dform_widget dform_widget_field dform_widget_type_date dform_widget_gate_3_actual1 dform_widget_"> 
       <div> 
        <label for="dform_widget_gate_3_actual1">Actual</label> 
       </div> 
       <div> 
        <input id="dform_widget_gate_3_actual1" type="date" name="gate_3_actual1" class="dform_field_active"> 
       </div> 
      </div> 
     </div> 
    </div> 
    <div class="box box18 last two"> 
     <div class="dform_section_box18"> 
      <div data-type="date" data-name="bc_approved_planned_bc" data-active="true" data-agentonly="false" class="container dform_widget param mrevise dform_widget_field dform_widget_type_date dform_widget_bc_approved_planned_bc dform_widget_"> 
       <div> 
        <label for="dform_widget_bc_approved_planned_bc">holding</label> 
       </div> 
       <div> 
        <input id="dform_widget_bc_approved_planned_bc" type="date" name="bc_approved_planned_bc" class="dform_field_active"> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 

Я использую ниже JQuery, чтобы найти значение входа, я хочу, чтобы обновить, но я не могу помочь, но думаю, что там должно быть менее долго наматывается способ изменить это. Я не могу просто ссылаться на идентификатор ввода, поскольку мне нужно сделать это для полей 20+.

$(this).parent().parent().parent().parent().next().next().find('.param').find('input').val() 

Это =

<input id="dform_widget_bc_approved_revised_pmr" type="date" name="bc_approved_revised_pmr" class=""> 

ответ

0

Вы можете использовать ближайший() метод вместо этого и найти элемент рекурсивный родительский(), а затем найти элемент уровня ребенка для братьев и сестер.

$(this).closest(".dform_section_area6").find('.param:last input').val() 
+0

К сожалению, с помощью этого я тогда должен создать для каждого dform_section_area и в настоящее время существует 20 (dform_section_area1 - dform_section_area20) –

Смежные вопросы