var bookmark_iterator = page_element.firstChild;
do {
// start insertion
if (bookmark_iterator === null) {
page_element.appendChild(div_el);
break;
}
// middle insertion
if (div_el.id < bookmark_iterator.id) {
page_element.insertBefore(div_el, bookmark_iterator);
break;
}
// end insertion
if (bookmark_iterator === page_element.lastChild) {
// if null will insert at the end per reference
bookmark_iterator = null;
page_element.insertBefore(div_el, bookmark_iterator);
break;
}
// increment loop
bookmark_iterator = bookmark_iterator.nextSibling;
} while (bookmark_iterator !== null);
问题是http://jslint.com会抛出错误:
line 643 character 19
Unexpected 'else' after disruption.
因为我在if / else结构中有一个break语句。
这让我觉得我做了一个简单的字母插页太复杂了。是否有更简单或更好的方法来编写它以便传递jslint?
答案 0 :(得分:3)
在这些街区之后摆脱else
。 JSLint试图告诉你的是,在else
块之后使用if
将控制转移出周围的块语句是没有意义的。它在语法上还可以,但是,它是傻瓜。 else
之后使用if
仅在控制流从if
块中移出后续代码时才有用。由于你在那里有break
个陈述,这种情况永远不会发生。
如果没有更多的背景,是否可以改善整体逻辑很难说。