2012-06-28 71 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的用途。

相关问题