元素<a>在此上下文中不允许作为元素<dl>的子元素 - Validator Error

Sur*_*raj 1 html javascript validation html5

在HTML 5(实验)windows-1252编码上运行w3Validator后,我收到以下错误 -

第11行,第20行:元素a在此上下文中不允许作为元素dl的子元素.(抑制此子树中的更多错误.)

<a href="#link"><dt>Link</dt><dd>Sub heading of the link</dd></a>
Run Code Online (Sandbox Code Playgroud)

如果<a>不能包含子元素<dl>那么代码应该如何使用?

注意:上面的代码由js使用,因此代码不会发生重大变化.

更新:整个代码如下 -

<div id="something">
    <dl>
        <a href="#link1"><dt>title1</dt><dd>Sub heading1</dd></a>
        <a href="#link2"><dt>title2</dt><dd>Sub heading2</dd></a>
        <a href="#link3"><dt>title3</dt><dd>Sub heading3</dd></a>
        <a href="#link4"><dt>title4</dt><dd>Sub heading4</dd></a>
        <a href="#link5"><dt>title5</dt><dd>Sub heading5</dd></a>
        <a href="#link6"><dt>title6</dt><dd>Sub heading6</dd></a>
    </dl>
</div>
Run Code Online (Sandbox Code Playgroud)

Mat*_*ens 9

到目前为止发布的所有答案都是错误的.

<a>默认情况下,锚点(或元素)是内联的,是的 - 但您可以使用一些基本的CSS来更改它:

a {
  display: block;
}
Run Code Online (Sandbox Code Playgroud)

除此之外,从HTML5开始,允许块级锚点.这意味着你可以做一些很酷的事情:

<a href="#">
 <h1>Foo</h1>
 <p>Bar</p>
</a>
Run Code Online (Sandbox Code Playgroud)

并将您的代码验证为HTML5.(这段代码一直在浏览器中运行,在HTML5之前它无效.)

真正的原因,它不验证(因此,在回答你的问题)很简单:<dt><dd>元素只能出现直接孩子一个的<dl>元素.