jQuery追加不起作用

时间:2011-07-15 09:10:37

标签: javascript jquery

我在使用jQuery $([selector])时出现轻微错误.adndnd(element),

var Site_Id = 119;
var iLi = document.createElement("li");
iLi.setAttribute("class", "hidden site_id_"+Site_Id);
iLi.setAttribute("name", "ArticleType["+Site_Id+"]");
console.log(iLi)
$(".level-2 div row_group_off").append(iLi); 

由于某种原因,DOMm抛出一个异常,jQuery调用它

uncaught exception: [Exception... "Could not convert JavaScript argument arg 0 [nsIDOMDocumentFragment.appendChild]" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: {path_removed} :: <TOP_LEVEL> :: line 12" data: no]

因此我添加了console.log我上面的代码中的<li class="hidden site_id_151" name="ArticleType[151]">

.level-2 div row_group_off

这意味着该元素被创建为非常有效的HTMLLiElement,但由于某种原因,jQuery无法将其附加到我的UL {{1}}

2 个答案:

答案 0 :(得分:3)

首先:为什么要以这种方式将vanilla Javascript与jQuery混淆?

我会选择它,比如

$('<li>', {
    'class':    'hidden site_id_' + Site_Id,
    'name':     'ArticleType[' + Site_Id + ']'
}).appendTo( '.level-2 div row_group_off' );

当然,row_group_off 必须<ul>元素。在当前形式中,jQuery将尝试使用名称* row_group_off *来查询节点,这有希望不存在。因此,您要么忘了#.来查询idclass -name

答案 1 :(得分:1)

尝试:

$(".level-2 div .row_group_off").append(iLi);

或者

$(".level-2 div #row_group_off").append(iLi);

或者

$(".level-2 div.row_group_off").append(iLi);

或者

$(".level-2 div#row_group_off").append(iLi);