-2

为什么我的新元素被包裹在一个数组中?

$('<a>')
[<a>​&lt;/a>​]

当我尝试使用它时,appendChild我得到一个 dom 异常 8 错误。

编辑:这是一个例子。我的确切代码是

addendum = $("<a>", {href: download_url, text:"Download .nupkg file"})
badge = $(".nuget-badge")[0]
badge.appendChild(addendum)
4

2 回答 2

7

所有 jQuery 对象都是类数组对象。选择集合中的第[0]一个元素将只返回一个元素。如果您改为记录 jQuery 对象,它将在控制台中显示为一个数组。

请注意,jQuery 有一个名为 .append 的内置方法,它应该可以满足您的需求。

$('<a>').append('<span>Hello World!</span>');

或者

$('<a>').append(someotherelement);

或对于您给定的代码:

$(".nuget-badge").append($("<a>", {href: download_url, text:"Download .nupkg file"}))

或(首选)

$("<a>", {href: download_url, text:"Download .nupkg file"}).appendTo(".nuget-badge");
于 2013-02-20T20:22:27.040 回答
0

您可以body像这样附加一个元素:

$('body').append($('<a>',{text:"test", href:"#"}));

所以我认为你创建元素的方式没有真正的问题

编辑

试试这个:

var addendum = $("<a>", {href: download_url, text:"Download .nupkg file"});
$(".nuget-badge").append(addendum);
于 2013-02-20T20:24:15.353 回答