Javascript 如何从字符串创建多级列表菜单?
我在HTA中使用vbscript获取子网位置列表,它返回如下文本:Javascript 如何从字符串创建多级列表菜单?,javascript,jquery,html,vbscript,hta,Javascript,Jquery,Html,Vbscript,Hta,我在HTA中使用vbscript获取子网位置列表,它返回如下文本: 芝加哥 丹佛 达拉斯 达拉斯/北 达拉斯/南 达拉斯/西部 达拉斯/西部/建筑1 达拉斯/西部/建筑2 休斯顿 萨克拉门托/西部 萨克拉门托/西部/建筑1 我试图动态创建一个无序列表,以便使用jquery创建一个可折叠菜单 我可以在数组中循环,但是构建嵌套的和似乎是不可能的。一旦实际构建了列表,我就准备好了jquery,但我似乎无法构建它 有没有jquery可以帮我做到这一点?其中arrList是GetSubnetLocat
- 芝加哥
- 丹佛
- 达拉斯
- 达拉斯/北
- 达拉斯/南
- 达拉斯/西部
- 达拉斯/西部/建筑1
- 达拉斯/西部/建筑2
- 休斯顿
- 萨克拉门托/西部
- 萨克拉门托/西部/建筑1
和
似乎是不可能的。一旦实际构建了列表,我就准备好了jquery,但我似乎无法构建它
有没有jquery可以帮我做到这一点?其中arrList是GetSubnetLocations函数以上述格式(按字母顺序)返回的列表
Dim arr菜单:ReDim arr菜单(-1)
调宽arrLocs:ReDim arrLocs(UBound(arrList),1)
i=0
对于列表中的每个x
'也在此处创建选项列表
intCount=Len(x)-Len(替换(x,“/”,“”)
arrLocs(i,0)=x
arrLocs(i,1)=整数计数
i=i+1
下一个
Result.InnerHTML=“”
重拨保留arrMenu(UBound(arrMenu)+1)
arrMenu(UBound(arrMenu))=“ul id=”“menu”“>”
对于x=1至UBound(arrLocs,1)步骤1
重拨保留arrMenu(UBound(arrMenu)+1)
arrmunum(UBound(arrmunum))=“”和“&arrLocs(x,0)和” ”
下一个
对于j=1至UBound(菜单)
如果arrLocs(j,1)>arrLocs(j-1,1),那么
arrMenu(j-1)=替换(arrMenu(j-1),“”,“ ”
strMenu=“”
对于菜单中的每个n
strMenu=strMenu&n
下一个
Result.InnerHTML=strMenu
请阅读有关如何正确提问的常见问题解答。你需要展示一些代码来证明你已经做出了努力。没有人会为你写这篇文章。我想我的部分问题是:当我用vbscript添加UL标签时,它们似乎是由……自动完成的。因此我添加了Result.InnerHTML=“- ”,但Result div的内容最终是“
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