Функция $
сильно перегружена, даже имея две функции для строк. Если строка является селектором CSS, она вернет объект, содержащий соответствующие элементы из документа. Если вы откроете с помощью <
, он создаст элемент. Однако jQuery не создает тег . Элементы принадлежат DOM, теги принадлежат HTML, который является сериализацией DOM.
$("<p/>") //Creates a p element
.append("<div>something</div>") //inserts a child element, which is a div you created
//containing the string "something"
.appendTo("body"); //tags the newly created paragraph element, with its div child
//and inserts it into the DOM as a child of the body element.
Когда вы сериализуете документ, вы получите:
<body><p><div>something</div></p></body>
, который показывает каждый элемент, содержащий его дочерние элементы.
<Ч />
Если ваша разметка выглядит следующим образом: <p/><div>something</div>
, то элементы p
и div
являются братьями и сестрами . Это произошло бы, если бы они были добавлены к одному и тому же родителю:
//Use add to create a new element and add it to the jQuery collection object
//instead of appending it as a child to the p element.
$("<p/>").add("<div>something</div>").appendTo("body");