【问题标题】:jQuery Navigation - Change input of an inputs parent-parent-parent-parent-siblingjQuery Navigation - 更改输入的输入 parent-parent-parent-parent-sibling
【发布时间】:2016-09-19 11:17:27
【问题描述】:

我目前正在寻找一些关于 jQuery 的建议,因为我认为我做错了,即使我得到了我想要的结果。

我想在更改时将输入的值更改为具有 .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 来查找我想要更新的输入的值,但我不禁认为必须有一种不那么冗长的方法来改变它。我不能只引用输入的 ID,因为我需要为 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="">

【问题讨论】:

    标签: javascript jquery navigation format


    【解决方案1】:

    您可以使用最接近()方法并找到递归的父()元素,然后找到兄弟姐妹的子级元素。

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

    【讨论】:

    • 不幸的是,我必须为每个 dform_section_area 创建一个,目前有 20 个 (dform_section_area1 - dform_section_area20)
    猜你喜欢
    • 2014-02-11
    • 2012-01-04
    • 1970-01-01
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多