如何从字符串创建多级列表菜单?

时间:2013-08-12 18:31:58

标签: javascript jquery html vbscript hta

我在HTA中使用vbscript获取子网位置列表,并返回如下文本:

  • 芝加哥
  • 丹佛
  • 达拉斯
  • 达拉斯/北
  • 达拉斯/南
  • 达拉斯/西
  • 达拉斯/西/建筑1
  • 达拉斯/西/建筑2
  • 休斯敦
  • 萨克拉门托/西
  • 萨克拉门托/西/号楼

我正在尝试动态创建无序列表,以便我可以使用jquery创建可折叠菜单。

我可以遍历数组,但构建嵌套的<ul><li>似乎是不可能的。一旦列表实际构建完成,我就准备好了jquery,但我似乎无法构建它。

有没有可以为我做这个的jquery?

1 个答案:

答案 0 :(得分:0)

其中arrList是GetSubnetLocations函数以上述格式返回的列表(按字母顺序排列)

Dim arrMenu : ReDim arrMenu(-1)
Dim arrLocs : ReDim arrLocs(UBound(arrList),1)
i = 0
For Each x In arrList
    'Also building option list here
    intCount = Len(x) - Len(Replace(x,"/",""))
    arrLocs(i,0) = x
    arrLocs(i,1) = intCount
    i = i + 1
Next

Result.InnerHTML = ""

ReDim Preserve arrMenu(UBound(arrMenu)+1)
arrMenu(UBound(arrMenu)) = "<ul id=""menu"">"
For x = 1 To UBound(arrLocs,1) Step 1
    ReDim Preserve arrMenu(UBound(arrMenu)+1)
    arrMenu(UBound(arrMenu)) = "<li><a>" & " " & arrLocs(x,0) & "</a></li>"
Next 

For j = 1 To UBound(arrMenu)
    If arrLocs(j,1) > arrLocs(j-1,1) Then 
        arrMenu(j-1) = Replace(arrMenu(j-1),"</li>","<ul style=""display:none"">")
    End If 
    If arrLocs(j,1) < arrLocs(j-1,1) Then 
        For x = 1 To arrLocs(j-1,1) - arrLocs(j,1)
            arrMenu(j-1) = arrMenu(j-1) & "</li>"
        Next 
    End If 
Next 
ReDim Preserve arrMenu(UBound(arrMenu)+1)
arrMenu(UBound(arrMenu)) = "</ul>"

strMenu = ""
For Each n In arrMenu
     strMenu = strMenu & n
Next
Result.InnerHTML = strMenu