PyCharm 警告:关闭标签与 <p> 标签不匹配

sun*_*ong 6 code-inspection pycharm vue.js

从我的 PyCharm检查代码之后。它警告我,因为 Closing 标签与 最后一个</p>标签不匹配

但我没有发现我的代码有任何错误。p 标签已正确关闭。

  <p v-if="files.length">
      <ul>
        <li v-for="file in files">
            {{file.name}} <span v-if="file.success"> - success. </span><span v-if="file.error"> - fail. </span>
            <span v-if="file.success || file.error">{{file.xhr.responseText}}</span>
        </li>
      </ul>
  </p>
Run Code Online (Sandbox Code Playgroud)

如何正确解决此警告?

Mic*_*uth 7

此警告是由无效的 HTML 引起的。该ul元素不是内不允许p元素。可以通过重构源以遵循 HTML规范来解决警告。

删除p元素:

<ul>
  <li v-for="file in files">
      {{file.name}} <span v-if="file.success"> - success. </span><span v-if="file.error"> - fail. </span>
      <span v-if="file.success || file.error">{{file.xhr.responseText}}</span>
  </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

p元素转换为div元素:

<div v-if="files.length">
  <ul>
    <li v-for="file in files">
        {{file.name}} <span v-if="file.success"> - success. </span><span v-if="file.error"> - fail. </span>
        <span v-if="file.success || file.error">{{file.xhr.responseText}}</span>
    </li>
  </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

答案/sf/answers/397725751/中对规范的相关部分进行了很好的总结。请注意,答案专门针对ol而不是ul,但仍然适用,因为它们的类别和内容模型是相同的。

如果 PyCharm 警告消息更具体一点会更好。这可以通过自定义检查在 PyCharm 的付费版本中完成,但在社区版中是不可能的。https://www.jetbrains.com/help/pycharm/creating-custom-inspections.html