0
我有兩個彼此相鄰的不同表。我和他們做了一些事情,一切順利,但是當我想要刪除他們中的一個(他們的父母的第一個孩子)時,它將兩者都刪除。我嘗試了很多方法來選擇第一個元素,例如::first-child, :first, .first(), :nth-child(1), eq(0)
...但是如果我使用.remove()
,它們都不起作用。另一方面,當我使用例如.empty()
,它的工作原理。所以這裏是我的問題:什麼導致這個問題?JQuery .remove()刪除比選定的元素多的元素
<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>
我想刪除這些表中的一個,但沒有成功。
在您的選擇器中,您在日曆包裝器內部爲每個表格刪除第一個孩子 –
http://jsfiddle.net/n1514sn7/1/可能的解決方案訪問第一個
您的代碼[在本演示中按預期工作](http://jsfiddle.net/7p4enokg/)。 – Ted
回答
那麼,當我試圖重現問題時,我發現這個問題在哪裏。爲此,我應該儘可能多地降低成本。問題是,我在.animate()函數的回調函數中調用了這個函數。但是這個函數運行了兩次,因爲它動畫了兩個表(當然!),這就是爲什麼它總是刪除兩個表。第一個動畫 - >刪除第一個表格;第二個動畫 - >刪除第一個表格(在這種情況下只剩下一個)。這就是我發現我是白癡:)抱歉浪費你的時間人。
來源
2015-04-27 19:03:07
您是否可以將此答案標記爲已接受,因此它在問題頁面上顯示爲如此? –
@StefanWittwer我想,但它不會讓我接受爲2天的答案(只是因爲它是我自己的答案) –
啊我看到,對不起 –
相關問題