JQuery:不能在p标签中隐藏section标签

时间:2017-02-23 19:16:52

标签: jquery html

所以我正在和jquery(imma nub)开玩笑。现在我发现了一些有趣的东西:为什么我不能隐藏section标签中的文字。像<section><p>blabla text text</p></section>那样工作正常 我没有在谷歌上找到任何东西。我想用jquery执行代码修复它! 问题代码:

&#13;
&#13;
$(document).ready(function() {
  $("button").click(function() {
    $("p  section").hide();
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>


<h2>This is a heading</h2>

<p>
  <section>This is a paragraph.</section>
</p>


<p>This is another paragraph.</p>

<button>Click me to hide paragraphs</button>
&#13;
&#13;
&#13;

提前致谢

3 个答案:

答案 0 :(得分:1)

部分不能嵌套在任何其他元素中。部分独立于

来自HTML5 Doctor section元素表示通用文档或应用程序节... section元素不是通用容器元素。当一个元素仅用于样式目的或作为脚本编写的便利时,鼓励作者使用div元素。一般规则是,只有元素的内容在文档的大纲中明确列出时,section元素才是合适的。 section是一小段内容,您可以将其存储为数据库中的单个记录。它通常看起来像这样(并注意标题在section元素内部,而不是在它之前):

更改您的代码段,因为以下内容应该有效

$(document).ready(function() {
  $("button").click(function() {
    $("section").hide();
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>


<h2>This is a heading</h2>


  <section><p>This is a paragraph.</p></section>



<p>This is another paragraph.</p>

<button>Click me to hide paragraphs</button>

答案 1 :(得分:0)

问题是<section> 无法驻留在<p>标记内。想一想,“部分”不应该位于“段落”中。您可能正在寻找的是<span>。这样,您可以设置段落的部分样式:

$("p > span").hide();

<p>
  <span>This is a paragraph.</span>
</p>

我创造了一个展示这个here的工作小提琴。

希望这有帮助! :)

答案 2 :(得分:0)

HTML5规范告诉我们<p>元素的内容模型是短语内容。

因此<p>标记内只能包含以下标记。不是jquery bug;)

  

a(如果它只包含措辞内容),abbr区域(如果它是a   地图元素的后代)音频b bdi bdo br按钮帆布引用   代码命令datalist del(如果它只包含措辞内容)dfn   em嵌入i iframe img输入ins(如果它只包含措辞内容)   kbd keygen标签贴图(如果它只包含短语内容)标记数学   米noscript对象输出进度q ruby​​ s samp脚本选择   小跨度强大的时间u var video wbr text