jQuery .append() 什么时候像 .insertBefore() 最后一个子子项与记录的 .insertBe
When does jQuery .append() act like .insertBefore() last child vs. as documented?
http://jsfiddle.net/foaje732/2/网页来源:
<p id="words">Words
<p>
<label>Q1
<input type="text" id="q1" name="myinput" />
</label>
</p>
</p>
Jscript:
$('#words').append($('<p></p>').html("This is clearly in the wrong place."));
您实际得到的:
的话。这显然是在错误的地方。Q1 [输入字段]
这是因为您的标记是错误的,p
元素不能包含另一个块元素,它只能包含内联元素。因此,您的标记在浏览器中呈现的实际 html 如下所示,这使您的输出正确。
<p id="words">Words</p>
<p>
<label>Q1
<input type="text" id="q1" name="myinput">
</label>
</p>
<p></p>
因此,您可以寻找的一种可能的解决方案是使用div
作为外部容器,例如
$('#words').append($('<p></p>').html("This is clearly in the wrong place."));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="words">Words
<div>
<label>Q1
<input type="text" id="q1" name="myinput" />
</label>
</div>
</div>
我们无法在元素内获取任何子<element>
p
,$('#words').children()
将返回 0,以便它将您的代码append
在p
的顶部(在单词 -text 之后,而不是任何元素)。在这种情况下,如果要修复它,请尝试将p
更改为div
:
<div id="words">
<p>Words</p>
<p>
<label>Q1
<input type="text" id="q1" name="myinput" />
</label>
</p>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
$(document).ready(function(){
$('#words').append($('<p></p>').html("This is clearly in the wrong place."));
})
相关文章:
- 使用Dnamics CRM 2011中的JavaScript读取子网格的所有记录,而不考虑活动页面
- AngularJs对所有页面中的所有记录进行排序
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- window.location替换并传递URL历史记录条目中的变量
- Javascript历史记录转换为php行
- JavaScript,PHP-用JavaScript将多个数据库记录发送到变量或表
- 猫鼬在特定记录中查找嵌套记录
- 浏览器何时记录历史记录
- 将一个表的id与另一个表中的user_id进行匹配,以获取mysql中的记录
- 更新成员数据模型中的记录列表
- 如何使用提交按钮搜索表中的记录
- 正在OrientDB中嵌入函数中的记录
- 使用Rails 3中的AJAX删除记录
- 用javascript记录传递给回调的参数的约定是什么
- 在页面上记录数据并实现pushstate()的最佳方式
- 输入类型按钮返回历史记录并返回顶部
- 我怎么能把一个错误当作未捕获的错误来记录呢
- HTML5历史记录-返回上一个完整页面按钮
- 如何使用 Backbone 将多条记录呈现到 html 表中.js .
- jQuery .append() 什么时候像 .insertBefore() 最后一个子子项与记录的 .insertBe