关于p标签的嵌套问题

今天群里问了一个p的问题,初看我觉得恩这么简单我应该知道。

他代码如下:

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <script type="text/javascript" src="js/jquery-1.11.0.js"></script>
</head>
<body>
<body>
<div>
    <p><p></p></p>

</div>
</body>
</body>
</html>

<script>
$(function(){
     var p = $("p");
     alert(p.length);
});
</script>

  然后输出了3

我怎么看也是2啊,然后我就让他把代码发给我看看,后来别人说p嵌套会有问题,我就试了一下其它标签  发现i,a ,div都是好的,

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <script type="text/javascript" src="js/jquery-1.11.0.js"></script>
</head>
<body>
<div>
    <div>1<div>2</div>3</div>
</div>
</body>
</html>
<script>
    $(function() {
        var $targetName = $(‘div‘);
       console.log(‘i len:‘,$targetName.length);

        for(var i=0;i<$targetName.length;i++) {
            console.log($targetName.eq(i).html());
        }
    });
</script>

然后我突然想起,p里面是不能嵌套块级的,p自己也是块级,
例如<p>1<p>2</p>3</p>
他最后会被解析为
<p>1</p>
<p>2</p>
<p</p>

然后我继续想,如果我把p的style设置为inline呢?

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <script type="text/javascript" src="js/jquery-1.11.0.js"></script>
    <style>
        p {
            display: inline;
        }
    </style>
</head>
<body>
<div>
    <p>1<p>2</p>3</p>
</div>
</body>
</html>
<script>
    $(function() {
        var $targetName = $(‘p‘);
       console.log(‘p len:‘,$targetName.length);

        for(var i=0;i<$targetName.length;i++) {
            console.log($targetName.eq(i).html());
        }
    });
</script>

恩  还是会输出3的, 这个应该是和浏览器有关系的。

ps:问题虽小,但是我今天才知道,略掉脸,囧。

关于p标签的嵌套问题

时间: 2024-08-03 06:56:40

关于p标签的嵌套问题的相关文章

HTML标签的嵌套规则

我在平时在写html文档的时候,发现不太清楚标签之间的嵌套规则,经常是想到什么标签就用那些,后来发现有些标签嵌套却是错误的.通过网上找资料,了解了html标签的嵌套规则. 一.HTML 标签包括 块级元素(block).内联元素(inline)  1.块级元素  一般用来搭建网站架构.布局.承载内容的元素,如下:  address.blockquote.center.dir.div.dl.dt.dd.fieldset.form.h1~h6.hr.isindex.menu.noframes.nos

Html 标签的嵌套规则

一.HTML 标签包括 块级元素(block).内嵌元素(inline) 1.块级元素 一般用来搭建网站架构.布局.承载内容--它包括以下这些标签: address.blockquote.center.dir.div.dl.dt.dd.fieldset.form.h1~h6.hr.isindex.menu.noframes.noscript.ol.p.pre.table.ul       2.内嵌元素 一般用在网站内容之中的某些细节或部位,用以"强调.区分样式.上标.下标.锚点"等等,

超级简单却不知道:html标签的嵌套规则

XHTML的标签有许多:div.ul.li.dl.dt.dd.h1~h6.p.a.addressa.span. strong……我们在运用这些标签搭建页面结构的时候,是可以将它们无限嵌套的,但是,嵌套也需要有一定规则,不能任由自己的个人习惯胡乱嵌套,那么,html标签的嵌套规则有哪些呢? 一.HTML 标签包括 块级元素(block).内嵌元素(inline) 1.块级元素 一般用来搭建网站架构.布局.承载内容……它包括以下这些标签: address.blockquote.center.dir.

XHTML标签的嵌套规则分析

在 XHTML 的语言里,我们都知道:ul 标签包含着 li.dl 标签包含着 dt 和 dd——这些固定标签的嵌套规则十分明确.但是,还有许多标签是独立的,它们没有被捆绑在一起,比如 h1.div.p……那么这些标签的嵌套规则到底是怎样的?今天就来说说这个话题. 提到 XHTML 标签的嵌套规则,我们先得知道有这么二类 XHTML 标签,一类叫做 块级元素(block),一类叫做 内嵌元素(inline,也有许多人叫它:内联.行内.线级等). 块级元素 和 内嵌元素 的划分标准很简单,请把下面

button标签内部嵌套div时的样式有bug(暂定的解决方案)

button标签内部嵌套div时的样式有bug 暂定解决方案,将button标签改为div标签 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Document</title><style type="text/css">button{padding: 0;}.logo_img{f

MyBatis从入门到精通(十二):使用collection标签实现嵌套查询

最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解使用collection标签实现嵌套查询的方法. 1. 需求升级 在上篇博客中,我们实现了需求:根据用户id查询用户信息的同时获取用户拥有的角色. 因为角色可以拥有多个权限,所以本篇博客我们升级需求为:根据用户id查询用户信息的同时获取用户拥有的角色以及角色包含的权限. 2. 实现方式 因为我们需要使用到权限表的映射,所以我们需要

html中标签的嵌套规则(注意:p中不可以嵌套div)

今天看到一道阿里的前端笔试题: 当时看到第一个选项的时候果断滴选择是错误的,但是晚上自己做练习的时候,就顺带试了一下,用一个p标签嵌套了个div,但是,天啊,浏览器竟然解析为: <p>                                                                  <p></p> <div></div>                                              &l

HTML里为什么不能在&lt;p&gt;标签中嵌套&lt;div&gt;标签

学习过HTML语言的人都应该知道,在HTML里,有分块级元素和内联元素:例如我们常用到的div,o,ul,dl,table,h1...h6等,这些都是块级元素:而像a,b,i,em,img,span等就是内联元素了.在开发过程中,我们避免不了各种元素的嵌套,但是有时候我们在不知不觉中就错误地嵌套元素了.为什么说是不知不觉呢.因为就算我们错误地嵌套了,但是在浏览器中显示的时候,其实是没有区别的.咱们今天就具体地分析为什么不能再<p>里嵌套<div>.希望通过这个例子,大家可以自己去学

XHTML 标签的嵌套规则

1. 块元素可以包含内联元素或某些块元素,但内联元素却不能包含块元素,它只能包含其它的内联元素:<div><h1></h1><p></p></div> —— 对 <a href=”#”><span></span></a> —— 对<span><div></div></span> —— 错 2. 块级元素不能放在<p>里面:<