- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在处理琐碎的座位预订脚本。在我的代码中,我有一张模仿座位的 table 。每个 td
元素都分配了“n”类并包含唯一 ID(例如 id='_21d')。这个想法是能够点击最多 4 个席位。此时应禁止进一步选择,席位总数计算并显示为“您选择了 4 个席位中的 X 个。” 所选席位的 ID 显示在字符串中,例如 “您的预定座位为:14F、11B、4C、10A”。
我到了那里,在突出显示 4 个座位后,我设法阻止了进一步的选择,座位数被正确计算并在重复单击同一个座位时切换 +=1 和 -=1。此外,一旦再次点击同一个座位,座位 ID 就会传递给字符串 BUT,它们不会被删除。相反,每次在选定和未选定的座位之间切换时,ID 都会被复制并添加到字符串中。这是我需要帮助的地方,如何使 ID 以与座位柜台相同的方式切换?
var seatsAlloc = 0;
$('#plan td.n').bind('click', function(event) {
if (!$(this).hasClass("taken"))
if ($(this).hasClass("selected")) {
seatsAlloc -= 1;
$(this).removeClass("selected");
} else if ($(".selected").length < 4) {
seatsAlloc += 1;
$(this).addClass("selected");
var chosen = ($(this).attr('id').substring(1));
var seatNumb = (chosen.toUpperCase() +" ");
}
$("#selSeats").append(seatNumb);
$('span#seatsAlloc').html(seatsAlloc);
})
最佳答案
我没有看到您实际上在任何时候都删除了席位名称,只是添加了它。无论如何,我不会记录所选座位的数量,而是每次都计算它们并同时重建列表。像这样的 -
// I'm removing this because we can count the number of allocated
// seats after each click easily enough
//var seatsAlloc = 0;
var maxSeatsAllowed = 4;
$('#plan td.n').bind('click', function(event) {
if (!$(this).hasClass("taken"))
if ($(this).hasClass("selected")) {
$(this).removeClass("selected");
} else if ($(".selected").length < maxSeatsAllowed) {
$(this).addClass("selected");
}
// "map" will return a jQuery array of the id's
// of all the selected seats (with the first char
// removed) and "get" will then convert that array to a
// regular javascript array which can be "join"ed.
// We then replace the list with the new one.
$("#selSeats").text($(".selected").map(function() {
return this.id.substring(1);
}).get().join(", "));
// Count all the selected seats and replace the previous count
$('span#seatsAlloc').text($(".selected").length + " seats of " + maxSeatsAllowed + " selected");
})
.selected {
background-color: skyblue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="plan">
<tr>
<td class="n" id="_A1">A1</td>
<td class="n" id="_A2">A2</td>
<td class="n" id="_A3">A3</td>
<td class="n" id="_A4">A4</td>
<td class="n" id="_A5">A5</td>
<td class="n" id="_A6">A6</td>
<td class="n" id="_A7">A7</td>
</tr>
<tr>
<td class="n" id="_B1">B1</td>
<td class="n" id="_B2">B2</td>
<td class="n" id="_B3">B3</td>
<td class="n" id="_B4">B4</td>
<td class="n" id="_B5">B5</td>
<td class="n" id="_B6">B6</td>
<td class="n" id="_B7">B7</td>
</tr>
<tr>
<td class="n" id="_C1">C1</td>
<td class="n" id="_C2">C2</td>
<td class="n" id="_C3">C3</td>
<td class="n" id="_C4">C4</td>
<td class="n" id="_C5">C5</td>
<td class="n" id="_C6">C6</td>
<td class="n" id="_C7">C7</td>
</tr>
</table>
<span id="selSeats"></span>
<span id="seatsAlloc"></span>
关于javascript - VAR 计数并在所选元素之间切换,但复制属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35485214/
你能比较一下属性吗 我想禁用文本框“txtName”。有两种方式 使用javascript,txtName.disabled = true 使用 ASP.NET, 哪种方法更好,为什么? 最佳答案 我
Count 属性 返回一个集合或 Dictionary 对象包含的项目数。只读。 object.Count object 可以是“应用于”列表中列出的任何集合或对
CompareMode 属性 设置并返回在 Dictionary 对象中比较字符串关键字的比较模式。 object.CompareMode[ = compare] 参数
Column 属性 只读属性,返回 TextStream 文件中当前字符位置的列号。 object.Column object 通常是 TextStream 对象的名称。
AvailableSpace 属性 返回指定的驱动器或网络共享对于用户的可用空间大小。 object.AvailableSpace object 应为 Drive 
Attributes 属性 设置或返回文件或文件夹的属性。可读写或只读(与属性有关)。 object.Attributes [= newattributes] 参数 object
AtEndOfStream 属性 如果文件指针位于 TextStream 文件末,则返回 True;否则如果不为只读则返回 False。 object.A
AtEndOfLine 属性 TextStream 文件中,如果文件指针指向行末标记,就返回 True;否则如果不是只读则返回 False。 object.AtEn
RootFolder 属性 返回一个 Folder 对象,表示指定驱动器的根文件夹。只读。 object.RootFolder object 应为 Dr
Path 属性 返回指定文件、文件夹或驱动器的路径。 object.Path object 应为 File、Folder 或 Drive 对象的名称。 说明 对于驱动器,路径不包含根目录。
ParentFolder 属性 返回指定文件或文件夹的父文件夹。只读。 object.ParentFolder object 应为 File 或 Folder 对象的名称。 说明 以下代码
Name 属性 设置或返回指定的文件或文件夹的名称。可读写。 object.Name [= newname] 参数 object 必选项。应为 File 或&
Line 属性 只读属性,返回 TextStream 文件中的当前行号。 object.Line object 通常是 TextStream 对象的名称。 说明 文件刚
Key 属性 在 Dictionary 对象中设置 key。 object.Key(key) = newkey 参数 object 必选项。通常是 Dictionary 
Item 属性 设置或返回 Dictionary 对象中指定的 key 对应的 item,或返回集合中基于指定的 key 的&
IsRootFolder 属性 如果指定的文件夹是根文件夹,返回 True;否则返回 False。 object.IsRootFolder object 应为&n
IsReady 属性 如果指定的驱动器就绪,返回 True;否则返回 False。 object.IsReady object 应为 Drive&nbs
FreeSpace 属性 返回指定的驱动器或网络共享对于用户的可用空间大小。只读。 object.FreeSpace object 应为 Drive 对象的名称。
FileSystem 属性 返回指定的驱动器使用的文件系统的类型。 object.FileSystem object 应为 Drive 对象的名称。 说明 可
Files 属性 返回由指定文件夹中所有 File 对象(包括隐藏文件和系统文件)组成的 Files 集合。 object.Files object&n
我是一名优秀的程序员,十分优秀!