Многие методы jQuery предназначены для автоматического создания элементов только из наполовину написанных тегов, например, "<span>"
для .prepend () приведет к добавлению всего элемента span в DOM. Или, как вы увидите в Firebug, "<span></span>"
сначала вставляется в элемент привязки.
Я не понимаю, почему вы хотите создать недопустимый HTML, но если вам нужно, вы можете сделать это следующим образом:
$("li > a").html("<span>"+$("li > a").html());
Или, как предполагает Рейгель, с анонимной функцией метода .html () (я написал свой ответ довольно быстро и, очевидно, бездумно):
$("li > a").html(function (idx, html) {
return "<span>" + html;
});
В противном случае может показаться, что вы хотите обернуть содержимое элемента привязки в промежуток. В этом случае вместо этого вы должны использовать один из методов jQuery :
$("li > a").wrap("<span>");
Вы не должны создавать как начальный элемент, так и закрывающий элемент самостоятельно (при использовании jQuery).