$("<a href='"+alink+"'></a> ")
Да, это на самом деле только создавая <a>
ele и отбрасывая nbsp. Когда вы передаете строку в функцию $()
, которая выглядит как (*) HTML, jQuery создает растягивание разметки между первым <
в строке и последним >
. Если у вас есть какой-либо ведущий или завершающий контент вне их, он отбрасывается (**). Вы можете обмануть JQuery, говоря:
$("<a href='"+alink+"'></a> <!-- don't ignore me! -->")
Это, кажется, не быть задокументированы в любом месте, не имеет никакого смысла, и может рассматриваться как ошибка, но это было нормальным поведением JQuery в течение некоторого времени, так что это, вероятно, не уходит.
Когда вы передаете HTML-строку функции append
(и другим методам манипуляции) напрямую, а не через функцию $
, этого поведения не происходит. Таким образом:
links.append("<a href='"+alink+"'></a> ");
на самом деле не оставляет места. Но лучший путь вперед, чтобы остановить бросали HTML строк о, так что вам не придется беспокоиться о alink
, содержащих '
, <
или &
символы либо, и работать в более DOM стиле:
var link= $('<a/>');
link.attr('href', alink);
link.html(desc);
links.append(link);
links.append('\xA0');
Или, более сжато, используя JQuery версии 1.4 props
аргумент ярлык:
links.append($('<a/>', {href: alink, html: desc}));
links.append('\xA0');
в предположении, что desc
действительно то, что должно содержать HTML-разметку; если нет, используйте вместо этого text
.
(я использовал \xA0
, струнный JavaScript буквальный способ включить символ U + 00A0 неразрывный пробел, как это целых два символа короче, чем ссылки HTML сущности Woohoo.!)
(*: как он указывает, что строка является HTML? Почему, проверяя, есть ли в ней символ <
и >
, в этом порядке, конечно. Значение этого будет обмануто, если вы попытаетесь использовать селектор, который имеет эти символы в Блестящий, jQuery, блестящий.(***))
(**: почему увидеть линии 125 из JQuery 1.4.2 Это создает фрагмент HTML из match[1]
-группы из первого <
до последнего >
в quickExpr
й не оригинал. строка или match[0]
)
(***:... Я сарказм безумный над-перегрузкой функции $
является одним из худших черт JQuery в)
лол DOH, что работает для меня :) – c14kaa