我一直在研究递归脚本,它基于标记动态创建下拉导航。
这是我到目前为止所拥有的,但我试图删除下拉列表中每个项目之前的连字符,除非它位于嵌套的子链接中。有没有人有任何想法?
以下是递归脚本的设置方式,调用位于底部。
var loadLinks = function runLinks(currDom, currPrependedChar) {
var dom = currDom;
var children = dom.children;
for (var i = 0; i < dom.children.length; ++i) {
var currentLink = children[i];
switch (currentLink.nodeName) {
case 'A':
var option = document.createElement('option');
option.innerHTML = currPrependedChar + currentLink.text;
option.value = currentLink.href;
select.appendChild(option);
break;
default:
if (currentLink.nodeName === 'UL') {
currPrependedChar += currPrependedChar;
}
loadLinks(currentLink, currPrependedChar);
break;
}
}
}
loadLinks(nav, '- ');
这是它在 JSFiddle 上的运行方式,您可以看到带有连字符的选择导航 - http://jsfiddle.net/4jeaZ/