最近我一直在做很多模态窗口弹出窗口,什么不是,我使用jQuery.我用来在页面上创建新元素的方法绝大多数都是这样的:
$("<div></div>");
Run Code Online (Sandbox Code Playgroud)
但是,我觉得这不是最好或最有效的方法.从性能角度来看,在jQuery中创建元素的最佳方法是什么?
这个答案有以下建议的基准.
我正在使用require代码中的函数加载文件,该函数会<script/>在页面正文中添加一个带有相关属性的标记.
脚本加载得很好并且可以访问它们,但如果我在其中一个中有错误,它从未在控制台中显示,并且我没有在开发人员工具内的Scripts选项卡中显示它们,实际上是在抢劫我调试功能.
我究竟做错了什么?
我的require函数如下所示:
require: function (moduleId) {
var filename = this.config.modulesDir + '/' + moduleId + '/module.js';
var script = $('<script></script>').attr({
'src': filename,
'type': 'text/javascript'
}).appendTo('#Scripts');
}
Run Code Online (Sandbox Code Playgroud) 这两个中的哪一个是正确的方法:
$('<div>')
Run Code Online (Sandbox Code Playgroud)
要么
$('<div />')
Run Code Online (Sandbox Code Playgroud)
他们似乎都工作.一种方式比另一种方式更正确,还是它们都能起作用?
var $div = $('<div class="error">').appendTo($('#header'));
Run Code Online (Sandbox Code Playgroud)
在创建新元素并将其添加到DOM时,您是否需要结束标记?为什么或者为什么不?如果我将内容放入我正在创建的标签中,我是否只需要结束标记?像这样:
var $div = $('<div class="error"> Error-Homie! </div>').appendTo($('#header'));
Run Code Online (Sandbox Code Playgroud)
或者我可以创建一个包含内容的元素,但是省略结束标记?好?坏?
var $div = $('<div class="error">').appendTo($('#header'));
Run Code Online (Sandbox Code Playgroud) 我习惯写作$('<div>').
但是今天我看到了一个关于john-resig使用以下语法的高级jquery的演示文稿$('<div/>').
http://loft.bocoup.com/john-resig-advanced-jquery/
对我来说,他们似乎产生相同的输出.
我的问题是:$('<div>')和之间有$('<div/>')什么区别
吗?
附加元素有什么区别
$('#my_parent_element').append('<div>');?
Run Code Online (Sandbox Code Playgroud)
要么
$('#my_parent_element').append($('<div>'));?
Run Code Online (Sandbox Code Playgroud)
和
$('#my_parent_element').append('<div/>');?
Run Code Online (Sandbox Code Playgroud)
要么
$('#my_parent_element').append($('<div/>'));?
Run Code Online (Sandbox Code Playgroud)
这是什么斜线的目的/.
将此元素转换为jQuery元素的目的是什么$?
为什么jQuery能够以这种方式附加元素?
我正在尝试包装<label>,<input type="text" />和<select>元素<div class="formItem"></div>来修复我无法直接编辑的表单上的某些定位.出于某种原因,当我尝试使用以下代码时:
$("label").before("<div class=\"formItem\">");
$("input[type=text]").after("</div>");
$("select").after("</div>");
Run Code Online (Sandbox Code Playgroud)
它不起作用.它只是<div class="formItem"></div>在每<label>一个对我没有帮助之前添加.
我已经看了一下,.wrap();但我不知道如何使用它来包装多个元素,就像我正在尝试做的那样.以下是HTML标记的示例:
<label>Text Box</label>
<input type="text" name="Text Box" />
<label>Select Menu</label>
<select name="Select Menu">
<option>Example</option>
</select>
Run Code Online (Sandbox Code Playgroud)
如果重要的话,大约有10套,9个文本框和1个选择框.
jquery ×7
javascript ×6
append ×3
html ×3
console ×1
dom ×1
element ×1
end-tag ×1
new-operator ×1