您好我需要一些帮助来理解这段代码: 它运作良好,但有人可以添加一些评论,以帮助我更好地理解它吗? 感谢
以下是代码:
function contractall() {
if (document.getElementById) {
var inc = 0
while (document.getElementById("dropmsg" + inc)) {
document.getElementById("dropmsg" + inc).style.display = "none"
inc++
}
}
}
function expandone() {
if (document.getElementById) {
var selectedItem = document.dropmsgform.dropmsgoption.selectedIndex
contractall()
document.getElementById("dropmsg" + selectedItem).style.display = "block"
}
}
if (window.addEventListener) window.addEventListener("load", expandone, false)
else if (window.attachEvent) window.attachEvent("onload", expandone)
答案 0 :(得分:0)
函数契约都会查找id为dropmsg0,dropmsg1 ... dropmsgN的所有元素 并隐藏它们。 expanddone函数显示所选元素。这是通过设置样式来完成的 元素。
最后两行是浏览器可比性的不完全尝试。
如果使用像jQuery这样的跨浏览器库,它可以在更多浏览器中使用。
答案 1 :(得分:0)
function contractall() {
if (document.getElementById) {
var inc = 0; // counter
// loop on all dropmsg in the document
while (document.getElementById("dropmsg" + inc)) {
// hide one by one
document.getElementById("dropmsg" + inc).style.display = "none"
inc++
}
}
}
function expandone() {
if (document.getElementById) {
var selectedItem = document.dropmsgform.dropmsgoption.selectedIndex; // get the selected item
contractall() // hide all in the document
// show the selected item
document.getElementById("dropmsg" + selectedItem).style.display = "block"
}
}
// add event handlers to windows load.
if (window.addEventListener) window.addEventListener("load", expandone, false)
else if (window.attachEvent) window.attachEvent("onload", expandone)