我在验证HTML 4.01时遇到了一个大问题
<li class="exampleclass">
<noscript>
<a href="http://www.skni.pl/index.html">
</noscript>
<span id="showLoginboxButton" style="cursor: pointer;">Login</span>
<noscript></a></noscript>
</li>我怎么才能修好它?我会犯这样的错误
未打开的元素"A“的结束标记 …nboxButton“style=”游标:指针;“>登录 Validator为上面的元素找到了一个结束标记,但是该元素目前还没有打开。这通常是由编辑过程中删除的元素中的剩余结束标记造成的,或者是由隐式关闭元素造成的(如果在不允许使用的元素中存在与其相关的错误,则几乎可以肯定是这样)。在后一种情况下,一旦修复了原来的问题,这个错误就会消失。 如果此错误发生在文档的脚本部分,您可能应该阅读此FAQ条目。
发布于 2013-09-17 14:53:22
注意您的代码是如何组织的:
<li class="exampleclass">
<noscript>
<a href="http://www.skni.pl/index.html">
</noscript>
<span id="showLoginboxButton" style="cursor: pointer;">Login</span>
<noscript>
</a>
</noscript>
</li>在关闭<noscript>之前关闭<a>。
您不能在HTML (或XML)中对标记进行这样的交织:每个标记必须按照打开的顺序关闭。如果在另一个元素中打开了一个标记,则必须在外部元素关闭之前关闭它。如果不遵守此规则,将发生验证错误。
为了达到你想要的目的,你可以按照以下方式做一些事情:
<li class="exampleclass">
<span id="showLoginboxButton" style="cursor: pointer; display: none">Login</span>
<script type="text/javascript">
document.getElementById('showLoginboxButton').style.display = 'inline';
</script>
<noscript>
<a href="http://www.skni.pl/index.html">Login</a>
</noscript>
</li>基本上,您隐藏#showLoginboxButton,只有在启用JavaScript的情况下才显示它。
当然,和往常一样,尽量避免内联样式和脚本标记。我在那里添加了它们,例如,您最终应该使用一个CSS类,并且JavaScript代码应该在更合适的地方使用。
发布于 2013-09-17 16:27:08
@ and很好地解释了HTML语法和有效性方面所发生的事情。在实际方面,最好的方法是避免noscript元素(如HTML5草案中所建议的),并应用不突出的JavaScript原则。在这种情况下,您可以编写
<li class="exampleclass">
<a href="http://www.skni.pl/index.html" id="showLoginboxButton">Login</a>
</li>剩下的部分用CSS和JavaScript来完成。您的JavaScript将为a元素分配一个onclick处理程序,以便它执行脚本必须做的事情,并最终返回false或以其他方式中止正常的链接处理(如果需要的话--我真的看不出您如何能够在没有服务器端操作的情况下有意义地进行登录。
或者应该是button。登录操作实际上调用的是操作按钮,而不是链接。
https://stackoverflow.com/questions/18853074
复制相似问题