2012-06-28 73 views
-2

我遇到了問題slideUp。只有一個元素(第一個元素)向上滑動。請給我一個手。謝謝。下面是代碼:jQuery slideUp僅適用於第一個元素

$(document).ready(function() { 
    $('#load').hide(); 
}); 
$(function() { 
    $("#del").click(function() { 
     $('#load').fadeIn(); 
     $(this).parent().slideUp('slow', function() {$(this).remove();}); 
     $('#load').fadeOut(); 
    }); 
}); 

這裏是標記:

<div id="container"> 
    <table> 
     <div id="load" align="center"><img src="images/loading.gif" width="28" height="28"  align="absmiddle"/> loading...</div> 
     <tr><td>  
      <span>Ashley Ford</span><br/></td> 
      <td><a href="#" id="del">x</a> 
     </td></tr> 
     <tr><td> 
      <span>Ashley Ford</span><br/></td> 
      <td><a href="#" id="del">x</a> 
     </td></tr> 
     <tr><td> 
      <span>Ashley Ford</span><br/></td> 
      <td><a href="#" id="del">x</a> 
     </td></tr> 
    </table> 
</div>  
+3

你不能有重複的' ID'值在同一個文件中。將其更改爲類名稱。 –

+0

id和class之間的區別是java腳本的基礎。請仔細閱讀文檔 – coolguy

回答

1

你不能有相同的id超過一個元素..for,你必須使用class 1.更改您的id="del"class="del" 2.Try此功能

$(function() { 
     $(".del").click(function() { 
     $('#load').fadeIn(); 
     $(this).parent().slideUp('slow', function() {$(this).remove();}); 
    $('#load').fadeOut(); 

    }); 
    }); 
+0

偉大的幫助我很多。但是現在我想滑動整個表格的一行。但是,如果我選擇$(「tr」)。整個桌子滑過。 –

+0

Try $(this).parent()。parent()。slideUp('slow',function(){$(this).remove();}); – coolguy

+0

謝謝,這有幫助。但不是slideUp我使用FadeOut,因爲它是更好的表格動畫。 –

2

從jQuery文檔爲ID selector(強調):

如果不止一個因素是分配了相同的ID,查詢 使用該ID將只選擇第一個匹配元素在DOM中。

你可以改變你的#del元素使用一個類名(或其他一些共同的特點),而不是:

<a href="#" class="del">x</a> 

,並相應修改您的選擇:

$(".del").click(function() { 
    //Do stuff 
}); 

由於一個側面說明,你有兩個函數將在DOM準備就緒執行。你可以將它們組合成一個。只需將$('#load').hide();移入其他DOM就緒事件處理程序。

而且,將div作爲table元素的子元素是無效的HTML。

+0

正如您所見,我更改了原始郵政編碼,我想要SlideUp整行()。但我有問題,在表格中選擇正確的標籤。感謝幫助。 –

0

正如其他人所述,每個元素id應該是唯一的。如果你需要分組一堆元素,這就是元素class的用途。

相關問題