1

我目前正在使用 javascript、html 和 css 设计网页。该页面是一个座位预订座位,允许用户选择和取消选择座位。当用户选择座位时,我设法让页面显示座位的 id,但是如果用户取消选择座位,我在尝试从显示中删除 id 时遇到问题。

下面是javascript代码

    $('.available, .unavailable, .selected').click(function(){
        var ID = $(this).attr('class');
        if (ID == 'n unavailable' || ID == 'p unavailable') {
            alert ('Seat is already booked. Please select another seat.');
        }
        else if (ID == 'n selected' || ID == 'p selected') {
            alert ('You have now unselected this seat.');
            $(this).html('<img src = "free.gif"/>');
            $(this).removeClass('selected').addClass('available');
            y--;
            $("#seats").html("Number of seats selected: " + y);
            $("#list").remove($(this).attr('id'));
        }
        else {
            alert ('You have now reserved this seat. You can unselect it by clicking the seat again.');
            $(this).html('<img src = "selected.gif"/>');
            $(this).removeClass('available').addClass('selected');
            y++;
            $("#seats").html("Number of seats selected: " + y);
            $("#list").append($(this).attr('id') + "</br>");
        }
    });
4

1 回答 1

1

remove()删除 dom 元素,而不是属性。只需将属性设置为空字符串:$("#list").attr('id', '')

编辑

在查看您的问题后,我想我误解了。您想删除显示 ID 的文本,而不是实际的 id 属性,对吗?

在这种情况下,最简单的方法是将文本节点包装在某种元素中,以便更容易选择删除。

在附加字符串 ( $("#list").append($(this).attr('id') + "</br>");) 的地方,将输出包装在一个跨度中,如下所示:

$("#list").append('<div class="id">' + $(this).attr('id') + "</div>");

这样,您可以将其删除:

$('#list').remove('#id');
于 2013-02-19T17:24:34.540 回答