Wählen Sie die Elemente in verschachtelten Divs mit JQuery

Ich habe Folgendes html-markup innerhalb eines Div-namens item und ich möchten, wählen Sie alle Elemente (innen verschachtelte divs) und löschen der Werte. Wie gezeigt in der folgenden gegebenen Jquery ich habe es geschafft, Zugriff auf Elemente in die einzelnen Div-mithilfe.children().each(). Aber das problem ist .children().each()geht eine Ebene in einer Zeit, von der parent-div, so habe ich wiederholt die gleiche code-block mit mehreren .children() Zugriff auf die Elemente in verschachtelten Divs, kann mir jemand empfehlen eine Methode, um dies zu tun, ohne zu wiederholen, den code für N-Anzahl von verschachtelten divs .

html-markup

<div class="item">
    <input type="hidden" value="1234" name="testVal">

    <div class="form-group" id="c1">
        <div class="controls ">
            <input type="text" value="Results" name="s1" maxlength="255" id="id2">
        </div>
    </div>
    <div class="form-group" id="id4">
        <input type="text" value="Results" name="s12" maxlength="255" id="id225">

        <div class="form-group" id="id41">
            <input type="text" value="Results" name="s12" maxlength="255" id="5">

            <div class="form-group" id="id42">
                <input type="text" value="Results" name="s12" maxlength="255" id="5">

                <div class="form-group" id="id43">
                    <input type="text" value="Results" name="s12" maxlength="255" id="id224">
                </div>
            </div>
        </div>
    </div>
</div>

Meine Qjuery Skript

var row = $(".item:first").clone(false).get(0);
$(row).children().each(function () {
updateElementIndex(this, prefix, formCount);

if ($(this).attr('type') == 'text') {
    $(this).val('');
}
if ($(this).attr('type') == 'hidden' && ($(this).attr('name') != 'csrfmiddlewaretoken')) {
    $(this).val('');
}
if ($(this).attr('type') == 'file') {
    $(this).val('');
}
if ($(this).attr('type') == 'checkbox') {
    $(this).attr('checked', false);
}
$(this).remove('a');
});

//Relabel or rename all the relevant bits
$(row).children().children().each(function () {
updateElementIndex(this, prefix, formCount)

if ($(this).attr('type') == 'text') {
    $(this).val('');
}
if ($(this).attr('type') == 'hidden' && ($(this).attr('name') != 'csrfmiddlewaretoken')) {
    $(this).val('');
}
if ($(this).attr('type') == 'file') {
    $(this).val('');
}
if ($(this).attr('type') == 'checkbox') {
    $(this).attr('checked', false);
}
$(this).remove('a');
});

InformationsquelleAutor PIKP | 2013-11-04

Schreibe einen Kommentar