Javascript帮助 - 组合框

时间:2009-11-22 12:29:42

标签: javascript

您好我需要一些帮助来理解这段代码: 它运作良好,但有人可以添加一些评论,以帮助我更好地理解它吗? 感谢

以下是代码:

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)

2 个答案:

答案 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)