JavaScript递归函数帮助删除连字符
JavaScript recursive function help to remove hyphens
我一直在编写一个递归脚本,它可以根据标记动态创建一个下拉导航。
这是我到目前为止所拥有的,但我试图删除下拉列表中每个项目之前的连字符,除非它在嵌套的子链接中。有人有什么想法吗?
下面是如何设置递归脚本的,调用位于底部。
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/
跟踪当前水平:
var loadLinks = function runLinks(currDom,currPrependedChar, currLevel) {
...
option.innerHTML = (currLevel++ < 1 ? '' : currPrependedChar) + currentLink.text;
...
currLevel < 2 || (currPrependedChar += currPrependedChar);
...
loadLinks(currentLink, currPrependedChar, currLevel);
...
loadLinks(nav, '- ', 0);
http://jsfiddle.net/userdude/4jeaZ/5/您可以在runLinks函数中添加一个额外的参数,这样它就可以知道当前的前置字符和子链接的前置字符。
var loadLinks = function runLinks(currDom, currPrependedChar, subPrependedChar) {
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 += subPrependedChar;
}
loadLinks(currentLink, currPrependedChar, subPrependedChar);
break;
}
}
}
loadLinks(nav, '', '- ');
相关文章:
- 如何将单词(包括单词)与连字符匹配
- 删除图形和数字之间的连字符(-)符号
- JQuery根据连字符前的首字母对列表进行排序
- 如何替换javascript字符串中的前三个连字符
- 带有连字符的 Jquery 表排序器编号
- Javascript将所有文本框值更改为连字符
- regex中连字符的这种用法有效吗
- 使用连字符引用对象的属性名称
- 用连字符分隔匹配值
- 跳过用户输入的文本字符串中的特殊字符,并在 Javascript 中的每个单词后添加连字符
- 为什么不'我的javascript函数允许点,但允许连字符
- 如何防止电子邮件地址的css自动连字符
- 从字符串中删除软连字符
- 如何删除span中的连字符?(jQuery)
- 删除变量中的连字符
- Javascript字符串删除空格和连字符
- 从字符串中删除空格、连字符和括号
- 如何删除所有的字符串后面跟着(-)连字符在javascript
- 从字符串中删除逗号和连字符
- JavaScript递归函数帮助删除连字符