-2

我有一个问题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>       
4

3 回答 3

2

来自ID 选择器的 jQuery 文档(添加了重点):

如果为多个元素分配了相同的 ID,则使用该 ID 的查询将仅选择DOM 中第一个匹配的元素

您可以更改#del元素以使用类名(或其他一些常见特征):

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

并相应地修改您的选择器:

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

附带说明一下,您有两个函数将在 DOM 就绪时执行。您可以将它们合二为一。只需将其移动$('#load').hide();到其他 DOM 就绪事件处理程序中。

并且将 adiv作为元素的子table元素是无效的 HTML。

于 2012-06-28T11:10:44.227 回答
1

您不能id对多个元素拥有相同的元素..因为您必须使用class 1.Change your id="del"to class="del" 2.Try this function

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

    });
     });
于 2012-06-28T11:11:31.307 回答
0

正如其他人所说,每个元素id都应该是唯一的。如果您需要对一堆元素进行分组,这就是元素class的用途。

于 2012-06-28T11:11:27.643 回答