簡體   English   中英

如何僅通過第一個div JavaScript進行迭代

[英]How to iterate through only the first div JavaScript

我有以下HTML,

<div class="col-lg-7 col-md-6 col-sm-6 text-left">
    <a href="javascript:;" class="multiSelect active" id="lbAssistingStaff" title="Evelyn Lupardus, Jamison Hennigan, Kajal Jain, Milud De Silvaa"><span style="width: 252px;">Evelyn Lupardus, Jamison Hennigan, Kajal Jain, Milud De Silvaa</span></a>
    <div class="multiSelectOptions" style="position: absolute; z-index: 99999; visibility: visible; height: 150px; width: 259px; top: 30px; left: 15px;">
        <label class="selectAll">
            <input type="checkbox" class="selectAll">Select All</label>
        <label class="">
            <input type="checkbox" name="lbAssistingStaff[]" value="10307">Dovie Segerson</label>
        <label class="checked">
            <input type="checkbox" name="lbAssistingStaff[]" value="14172">Kajal Jain</label>
        <label>
            <input type="checkbox" name="lbAssistingStaff[]" value="10354">Lydia Nikocevic</label>
        <label class="checked">
            <input type="checkbox" name="lbAssistingStaff[]" value="10355">Margo Mondloch</label>
    </div>
    <div class="multiSelectOptions" style="position: absolute; z-index: 99999; visibility: visible; height: 150px; width: 259px;">
        <label class="selectAll">
            <input type="checkbox" class="selectAll">Select All</label>
        <label>
            <input type="checkbox" name="lbAssistingStaff[]" value="10307">Dovie Segerson</label>
        <label class="checked">
            <input type="checkbox" name="lbAssistingStaff[]" value="14172">Kajal Jain</label>
    </div>
    <div class="multiSelectOptions" style="position: absolute; z-index: 99999; visibility: visible; width: 259px;">
        <label class="selectAll">
            <input type="checkbox" class="selectAll">Select All</label>
        <label class="checked">
            <input type="checkbox" name="lbAssistingStaff[]" value="14172">Kajal Jain</label>
        <label>
            <input type="checkbox" name="lbAssistingStaff[]" value="10062">Nevada Morison</label>
    </div>
    <div class="multiSelectOptions" style="position: absolute; z-index: 99999; visibility: visible; height: 150px; width: 412px;">
        <label class="selectAll">
            <input type="checkbox" class="selectAll">Select All</label>
        <label>
            <input type="checkbox" name="lbAssistingStaff[]" value="10259">Abel Schear</label>
        <label class="checked">
            <input type="checkbox" name="lbAssistingStaff[]" value="10405">Adam Sandling</label>
        <label>
            <input type="checkbox" name="lbAssistingStaff[]" value="10400">Alta Barba</label>
        <label class="checked">
            <input type="checkbox" name="lbAssistingStaff[]" value="16224">amali silva</label>
    </div>
    <input type="hidden" name="ctl00$ContentPlaceHolder1$ctlViewFilters$hndAssistingStaff" id="hndAssistingStaff" value="10276,10352,14172,14177,10276,10352,14172,10276,10352,14172,14172,14172,14172,14172,10276,10352,14172,10276,10352,14172">
</div>

這是通過JQuery多重選擇生成的。有單獨的div,具有相同的類名稱,稱為class="multiSelectOptions" 現在我需要將所有選中的選項值僅推入第一個Div(top Div)內部的Array中。這意味着,

<div class="multiSelectOptions" style="position: absolute; z-index: 99999; visibility: visible; height: 150px; width: 259px; top: 30px; left: 15px;">
    <label class="selectAll">
        <input type="checkbox" class="selectAll">Select All</label>
    <label class="">
        <input type="checkbox" name="lbAssistingStaff[]" value="10307">Dovie Segerson</label>
    <label class="checked">
        <input type="checkbox" name="lbAssistingStaff[]" value="14172">Kajal Jain</label>
    <label>
        <input type="checkbox" name="lbAssistingStaff[]" value="10354">Lydia Nikocevic</label>
    <label class="checked">
        <input type="checkbox" name="lbAssistingStaff[]" value="10355">Margo Mondloch</label>
</div>

我試過了

$("#lbAssistingStaff").next("div").click(function (e) {
    var listboxID = "lbAssistingStaff";
    var selectedItemIDs = [];
    $('input[name="' + listboxID + '\[\]"]:checked').each(function () {
        selectedItemIDs.push($(this).val());
    });
});

但這將遍歷所有div的name="lbAssistingStaff[]" ,根據我的要求,數組應僅具有這兩個值( 14172,10355 )。

提供上下文。

$('input[name="' + listboxID + '\[\]"]:checked', this)

這將會對應用選擇this是你點擊的股利。

使用$(this) find

$("#lbAssistingStaff").next("div").click(function (e) {
    var listboxID = "lbAssistingStaff";
    var selectedItemIDs = [];
    $(this).find('input[name="' + listboxID + '\[\]"]:checked').each(function () {
    // ^^^^^^^^^
        selectedItemIDs.push($(this).val());
    });
});

旁注:jQuery提供了一個map函數,您可以使用它來代替創建數組然后推送到它:

var selectedItemIDs = $(this).find('input[name="' + listboxID + '\[\]"]:checked').map(function () {
    return this.value; // No need to wrap it just to get the value
}).get();

不要忘記最后的.get() ,否則您將獲得一個jQuery對象而不是一個真正的數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM