¶My Solution
My solution to task31 is available on jsfiddle:
¶利用“复选框 hack”来实现类似标签页的切换效果
input[type="radio"]:checked ~ section.class
来切换 section
的显示/隐藏。
1 | /* 下面的 #student 和 #notStudent 是两个 input[type="radio"] */ |
《CSS 揭秘》P152
¶Compared with others’
¶任务得分第一的团队的 solution
- 获取
select
当前值(见本文最后)
¶任务得分第二的团队的 solution 和 任务得分第三的团队的 solution
- ❔ (“城市”“学校”相关)数据存储在?:数组 VS 对象
- 存储在数组:
- 顺序有保证
- 结构不是那么清晰
- 存储在对象:
for-in
可能顺序不理想- 结构更清晰(城市学校的对应关系明了)
- 存储在数组和对象的嵌套结构中:
- 存储在数组:
- ❓ 事件代理的兼容性处理(必要???)
1
2
3
4
5
6
7
8
9function delegateEvent(elem, tag, event, listener) {
addEventHandler(elem, event, function () {
var e = arguments[0] || window.event,
target = e.target || e.srcElement;
if (target && target.tagName === tag.toUpperCase()) {
listener.call(target, e);
}
});
}
¶一些知识点
¶🔖 获取 select
当前值
Get Value or Selected Option in Select Box
Get selected value in dropdown list using JavaScript? @SO
¶多种方式
P.S. 仅适用于
sel.type === "select-one"
的select
;不适用于sel.type === "select-multiple"
的select
。同时适用于两种type
的select
值的获取方式可以参考最后 jQuery 的代码片段。
-
方式一:
.value
- 存在兼容性问题:IE9 以下在
option
没有value
值的情况下,无法像别的浏览器那样返回option
的文本内容。
- 存在兼容性问题:IE9 以下在
-
方式二:selectedOptions
(这个方法是我自己试出来的。。好像提到的不多,可能不可靠??)1
2sel.selectedOptions[0].value
sel.selectedOptions[0].text -
方式三:
selectedIndex
(🔖 常用方法)1
2sel.options[sel.selectedIndex].value
sel.options[sel.selectedIndex].text -
方式四:
for
循环判断option
的selected
值
¶扩展阅读:jQuery 中 select
的 .val()
方法的实现
1 | select: { |