¶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: { |