在jquery中创建一个元素

use*_*189 2 javascript css jquery dom

所以,我知道如何以各种方式在jQuery中创建一个元素.但是我在今天之前从未遇到过这个问题:

    var myspacer = $('<div />', {
        "id": "nav-spacer",
        "height": mynav.outerHeight()
    });
Run Code Online (Sandbox Code Playgroud)

稍后在代码中,使用jQuery的.before()方法将此变量添加到DOM中.有人能解释一下这里发生了什么吗?正在创建什么样的对象?jQuery如何知道如何将其转换为HTML元素?

nnn*_*nnn 5

这是函数$( html, props )语法- 在API文档中非常清楚地解释了它:jQuery()

html定义单个独立HTML元素的字符串(例如<div/><div></div>).

props 要在新创建的元素上调用的属性,事件和方法的映射.

如果函数确定第一个参数是一个看起来像html片段的字符串,它会从该片段创建一个或多个新元素.如果在第二个参数中传递映射,则会在新创建的元素上创建指定的属性.

新元素不会自动添加到文档,但你似乎已经看到,由于你提到的.before()代码,添加它.