簡體   English   中英

jQuery .remove()刪除的元素數量超過所選數量

[英]JQuery .remove() removes more elements than was selected

我有兩個彼此相鄰的桌子。 我用它們做一些事情,一切正常,但是當我要刪除其中一個(他們父母的第一個孩子)時,它將兩個都刪除。 我嘗試了很多選擇第一個元素的方法,例如:: :first-child, :first, .first(), :nth-child(1), eq(0) ...但是如果我使用.remove() ,它們都不起作用.remove() 另一方面,當我使用.empty() ,它可以工作。 所以這是我的問題:造成此問題的原因是什么?

<div class="calendar_wrapper_border ">
    <table>
        <tr>
            <td>
                something here
            </td>
        </tr>
    </table>
    <table>
        <tr>
            <td>
                something here
            </td>
        </tr>
    </table>
</div>
<script>
    //doesn't work
    $('.calendar_wrapper_border table:first-child').remove();
    //does work
    $('.calendar_wrapper_border table:first-child').empty();
</script>

如我所說,它與任何“第一個”選擇器都不起作用。 還有一件事是,兩個表都是使用JQuery生成的,並附加到該DIV中。 但是對我而言,.empty()有效但.remove()刪除了兩個表都沒有意義。 如果有人可以給我解釋我可能犯的錯誤,我將非常感激。

我將為您提供此html代碼的整個結構。

 <div class="calendar_wrapper_border"> <table class="calendar"> <tbody> <tr class="names"> <td class="day name_of_day">Po</td> <td class="day name_of_day">Út</td> <td class="day name_of_day">St</td> <td class="day name_of_day">Čt</td> <td class="day name_of_day">Pá</td> <td class="day name_of_day">So</td> <td class="day name_of_day">Ne</td> </tr> <tr> <td class="day disabled" date="30-3-2015">30</td> <td class="day disabled" date="31-3-2015">31</td> <td class="day" date="1-4-2015">1</td> <td class="day" date="2-4-2015">2</td> <td class="day" date="3-4-2015">3</td> <td class="day" date="4-4-2015">4</td> <td class="day" date="5-4-2015">5</td> </tr> <tr> <td class="day" date="6-4-2015">6</td> <td class="day" date="7-4-2015">7</td> <td class="day" date="8-4-2015">8</td> <td class="day" date="9-4-2015">9</td> <td class="day" date="10-4-2015">10</td> <td class="day" date="11-4-2015">11</td> <td class="day" date="12-4-2015">12</td> </tr> <tr> <td class="day" date="13-4-2015">13</td> <td class="day" date="14-4-2015">14</td> <td class="day" date="15-4-2015">15</td> <td class="day" date="16-4-2015">16</td> <td class="day" date="17-4-2015">17</td> <td class="day" date="18-4-2015">18</td> <td class="day" date="19-4-2015">19</td> </tr> <tr> <td class="day" date="20-4-2015">20</td> <td class="day" date="21-4-2015">21</td> <td class="day" date="22-4-2015">22</td> <td class="day" date="23-4-2015">23</td> <td class="day" date="24-4-2015">24</td> <td class="day" date="25-4-2015">25</td> <td class="day" date="26-4-2015">26</td> </tr> <tr> <td class="day selected" date="27-4-2015">27</td> <td class="day" date="28-4-2015">28</td> <td class="day" date="29-4-2015">29</td> <td class="day" date="30-4-2015">30</td> <td class="day disabled" date="1-1-2015">1</td> <td class="day disabled" date="2-1-2015">2</td> <td class="day disabled" date="3-1-2015">3</td> </tr> </tbody> </table> <table class="calendar"> <tbody> <tr class="names"> <td class="day name_of_day">Po</td> <td class="day name_of_day">Út</td> <td class="day name_of_day">St</td> <td class="day name_of_day">Čt</td> <td class="day name_of_day">Pá</td> <td class="day name_of_day">So</td> <td class="day name_of_day">Ne</td> </tr> <tr> <td class="day disabled" date="30-3-2015">30</td> <td class="day disabled" date="31-3-2015">31</td> <td class="day" date="1-4-2015">1</td> <td class="day" date="2-4-2015">2</td> <td class="day" date="3-4-2015">3</td> <td class="day" date="4-4-2015">4</td> <td class="day" date="5-4-2015">5</td> </tr> <tr> <td class="day" date="6-4-2015">6</td> <td class="day" date="7-4-2015">7</td> <td class="day" date="8-4-2015">8</td> <td class="day" date="9-4-2015">9</td> <td class="day" date="10-4-2015">10</td> <td class="day" date="11-4-2015">11</td> <td class="day" date="12-4-2015">12</td> </tr> <tr> <td class="day" date="13-4-2015">13</td> <td class="day" date="14-4-2015">14</td> <td class="day" date="15-4-2015">15</td> <td class="day" date="16-4-2015">16</td> <td class="day" date="17-4-2015">17</td> <td class="day" date="18-4-2015">18</td> <td class="day" date="19-4-2015">19</td> </tr> <tr> <td class="day" date="20-4-2015">20</td> <td class="day" date="21-4-2015">21</td> <td class="day" date="22-4-2015">22</td> <td class="day" date="23-4-2015">23</td> <td class="day" date="24-4-2015">24</td> <td class="day" date="25-4-2015">25</td> <td class="day" date="26-4-2015">26</td> </tr> <tr> <td class="day selected" date="27-4-2015">27</td> <td class="day" date="28-4-2015">28</td> <td class="day" date="29-4-2015">29</td> <td class="day" date="30-4-2015">30</td> <td class="day disabled" date="1-1-2015">1</td> <td class="day disabled" date="2-1-2015">2</td> <td class="day disabled" date="3-1-2015">3</td> </tr> </tbody> </table> </div> 

我想刪除其中一個表,但未成功。

好吧,當我嘗試重現問題時,我發現了問題出在哪里。 為此,我應得到盡可能多的反對。 問題是,我在.animate()函數的回調中調用了此函數。 但是此函數運行了2次,原因是它對兩個表都進行了動畫處理(確定!),這就是為什么總是刪除兩個表的原因。 第一個動畫->刪除了第一個表; 第二個動畫->刪除了第一個表(在這種情況下,僅剩下一個表)。 這就是我發現自己是白痴的方法:)很抱歉浪費您的時間。

暫無
暫無

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

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