0

当我的列表显示时,我的列表的第一个元素位于正确的位置,但从第二个到最后,它们都出现在项目符号下方而不是在它旁边:/

如果您需要查看代码,请访问http://www.nsworld.org/development(点击美国)

我正在尝试解决这个问题,它只出现在 IE8 中,所有其他浏览器都完美显示。

4

1 回答 1

1

关闭您的锚标签(以及您的列表项) - 它们只是被打开,但从未关闭:

"<li>"+"<a href='http://nsworld.org/'>"+"Foo"+""+""+"<br />"+"<br />"+

一般而言,此代码需要大量重新工作。有很多不必要的串联,这破坏了这条线的易读性(以及它周围的那些)。

此外,

我有几点建议。首先是您开始使用 Standards doctype,例如<!DOCTYPE html>这样您就可以在各种浏览器和版本中获得更一致的行为。

其次是关闭你的标签。我注意到这些列表项没有被关闭,因此任务留给浏览器来确定后续列表项应该如何格式化。虽然这不是无效的,但我绝对不会鼓励这种做法。

最后是避免在 JavaScript 中进行冗长的字符串连接,例如:

 switch (code) {
    case "us":
x="<ul>"+
"<li>"+"<a href='http://nsworld.org/findings/How-does-it-all-Fit-Together/Capacities#!prettyPhoto[examples2]/2/'>"+"Envision Charlotte"+""+""+"<br />"+"<br />"+
"<li><a href='http://nsworld.org/findings/Building-New-Capacities-Emergence/Innovative-Societies#!prettyPhoto[examples2]/2/'>"+"US Open Government Initiative"+""+
"<li>"+"<a href='http://nsworld.org/findings/Building-New-Capacities-Emergence/Innovative-Societies#!prettyPhoto[examples2]/3/'>"+"Unreasonable Institute"+""+""+
"<li>"+"<a href='http://nsworld.org/findings/Building-New-Capacities-Emergence/Innovative-Societies#!prettyPhoto[examples2]/4/'>"+"FailFaire"+""+""+
"<li>"+"<a href='http://nsworld.org/findings/Building-New-Capacities-Emergence/Emergent-Solutions#!prettyPhoto[examples]/1/'>"+"Ushahidi-Haiti"+""+""+
"<li>"+"<a href='http://nsworld.org/findings/Building-New-Capacities-Emergence/Public-Organizations-as-Experimentation-Platforms#!prettyPhoto[examples2]/3/'>"+"Social Innovation Fund"+""+""+
"<li>"+"<a href='http://nsworld.org/findings/Building-New-Capacities-Resilience/Adaptive-Capacity#!prettyPhoto[examples2]/1/'>"+"Community and Regional Resiliency Institute (CARRI)"+""+""+
"<li>"+"<a href='http://nsworld.org/articles/community-resilience-taking-tangible-steps-towards-achieving-societal-resilience'>"+"Community Resilience: Taking Tangible Steps Towards Achieving Societal Resilience"+""+""+
"<li>"+"<a href='http://nsworld.org/discoveries/nurse-family-partnership-co-produces-results-us'>"+"Nurse-Family Partnership Co-Produces Results in the U.S."+""+""+
""
        break;

相反,您可以预先加载这些列表、异步拉下这些列表,或者将数据填充到某种 JavaScript 对象中。如您所见,大量的字符串连接使代码非常不可读,并提供了更多出错的机会。

于 2012-12-05T17:13:27.867 回答