0

我将在这段代码下面使用一些 jQuery(我可能会重写为 jQuery)。jQuery 已加载。但我不明白为什么,当我在调试器中单步执行此代码时,调试器会在指示的行跳转到 jQuery,并且我收到“UL.appendChild”不是函数的错误。

 var Dialog = document.createElement('div').id='meta-dialog';
 var Tabs = document.createElement('div').id = 'meta-tabs';         
 var UL = document.createElement('ul').id = 'meta-ul';


 var li1 =document.createElement('li'); li1.id = 'term1-LI';
 var li2 =document.createElement('li'); li2.id = 'term2-LI';

 var li1a = document.createElement('a');
 var li2a = document.createElement('a');

 li1a.href='#meta-tab1'; li1a.innerHTML = 'term1';
 li2a.href='#meta-tab2'; li2a.innerHTML = 'term2';

 li1.appendChild(li1a);
 li2.appendChild(li2a);

 UL.appendChild(li1) ;   // Firebug debugger jumps into jQuery here
 UL.appendChild(li2);

这个问题对任何人来说都很明显吗?这与 jQuery 有冲突吗?

4

3 回答 3

3
>>> var UL = document.createElement('ul').id = 'meta-ul';
>>> UL
"meta-ul"
于 2010-07-02T14:50:24.087 回答
2
// Here UL will be the id attribute, not the <ul> element.
var UL = document.createElement('ul').id = 'meta-ul';

// this doesn't makes sense... (id.appendChild)
UL.appendChild(li1) ;

// solution:
var UL = document.createElement('ul');
UL.id = 'meta-ul';

对话框和选项卡也是如此。(你的 li1 和 li2 很好)

哦,只要你不使用任何以 $ 开头的东西,你就不能与 jQuery 发生冲突。

于 2010-07-02T14:50:12.980 回答
-1

UL不是一个 jQuery 元素对象,只是一个原生 JavaScript 元素。您需要UL使用 jQuery来获取$(UL)jQuery 特定方法。

于 2010-07-02T14:50:31.137 回答