0

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

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

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

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

是否有任何 jquery 可以为我做到这一点?

4

1 回答 1

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
于 2013-08-13T13:45:04.453 回答