Javascript 为什么代表不在“中”工作;p";标签?
当委托带有Javascript 为什么代表不在“中”工作;p";标签?,javascript,jquery,Javascript,Jquery,当委托带有p标记时,它不起作用 HTML: 将p#test更改为span#test或body,它可以工作 HTML: 请告诉我一些关于它的事情。非常感谢 浏览器正在更正无效的HTML,并将div移到p之外。它们成为兄弟,因此事件委派不起作用。只需检查元素并亲自查看: 第一种情况: <body> <p id="test"></p> <div>box 1 <div>box in box1</div>
p
标记时,它不起作用
HTML:
将
p#test
更改为span#test
或body
,它可以工作
HTML:
请告诉我一些关于它的事情。非常感谢 浏览器正在更正无效的HTML,并将
div
移到p
之外。它们成为兄弟,因此事件委派不起作用。只需检查元素并亲自查看:
第一种情况:
<body>
<p id="test"></p>
<div>box 1
<div>box in box1</div>
</div>
<p></p>
</body>
方框1
盒子1中的盒子
第二种情况:
<body>
<span id="test">
<div>box 1
<div>box in box1</div>
</div>
</span>
</body>
方框1
盒子1中的盒子
浏览器正在更正无效的HTML,并将div
移到p
之外。它们成为兄弟,因此事件委派不起作用。只需检查元素并亲自查看:
第一种情况:
<body>
<p id="test"></p>
<div>box 1
<div>box in box1</div>
</div>
<p></p>
</body>
方框1
盒子1中的盒子
第二种情况:
<body>
<span id="test">
<div>box 1
<div>box in box1</div>
</div>
</span>
</body>
方框1
盒子1中的盒子
这就是浏览器(HTML解析器)的工作方式,因为
是一个,而
是一个,在大多数情况下,语法元素不能包含任何流元素,这被称为嵌套错误的标记,HTML解析器将通过某些特定步骤神奇地解决这些问题:
时,它会生成一个
元素
时,由于
不能驻留在
元素中,HTML解析器关闭最后一个
元素,然后打开一个
元素
时,关闭
元素
时,由于前面的
元素已关闭,解析器将其重新格式化为缺少开始标记的元素,因此解析器会自动在此处插入一个开始标记,以创建一个完整的元素
<p id="test"></p> <!-- auto closed -->
<div>
box1
<div>
box in box1
</div>
</div>
<p></p> <!-- auto generated -->
框1
盒子1中的盒子
很明显,
和
处于同一级别,没有形成包含关系,因此委托在此失败。这就是浏览器(HTML解析器)的工作方式,因为
是一个,而
是一个,在大多数情况下,短语元素不能包含任何流元素,这被称为错误嵌套标记,HTML解析器将通过某些特定步骤神奇地解决这些问题:
时,它会生成一个
元素
时,由于
不能驻留在
元素中,HTML解析器关闭最后一个
元素,然后打开一个
元素
时,关闭
元素
时,由于前面的
元素已关闭,解析器将其重新格式化为缺少开始标记的元素,因此解析器会自动在此处插入一个开始标记,以创建一个完整的元素
<p id="test"></p> <!-- auto closed -->
<div>
box1
<div>
box in box1
</div>
</div>
<p></p> <!-- auto generated -->
框1
盒子1中的盒子
很明显,
和
处于同一级别,没有形成包含关系,因此委托在此失败。标记p
只能包含内联元素
,
虽然
标记(作为一个可以很好地处理内联块元素的交叉浏览器标识的标记)可以很好地接受div
标记(虽然可能不正确)
它既不会在严格的4.01 doctype中验证,也不会在HTML5中验证
适当的方法是将其包装在块级元素中:
div
标记p
只能包含内联元素
,
虽然
标记(作为一个可以很好地处理内联块元素的交叉浏览器标识的标记)可以很好地接受div
标记(虽然可能不正确)
它既不会在严格的4.01 doctype中验证,也不会在HTML5中验证
适当的方法是将其包装在块级元素中:一个
div
在段落中包含一个div
是很不常见的(阅读:不正确)而
元素接受许多标准HTML标记div
是块级元素。因此,它不能放在内联p
中,在段落中嵌套div是无效的HTML。请将问题的所有相关部分也包括在问题中。@Olly:.delegate()
不受欢迎.live()
是…@Olly:是的,被取代的不是不推荐的。。。好吧,我很挑剔;)我同意使用.on()
更有意义!在段落中有一个div
是很不常见的(读作:不正确)而
元素接受许多标准HTML标记div
是块级元素。因此,它不能放在内联p
中,在段落中嵌套div是无效的HTML。请将问题的所有相关部分也包括在问题中。@Olly:.delegate()
不受欢迎.live()
是…@Olly:是的,被取代的不是不推荐的。。。好吧,我很挑剔;)我同意使用.on()
更有意义!
<p id="test"></p> <!-- auto closed -->
<div>
box1
<div>
box in box1
</div>
</div>
<p></p> <!-- auto generated -->