我将在这段代码下面使用一些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有冲突吗?
答案 0 :(得分:3)
>>> var UL = document.createElement('ul').id = 'meta-ul';
>>> UL
"meta-ul"
答案 1 :(得分: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';
Dialog和Tabs也是如此。 (你的li1和li2很好)
哦,只要你没有使用以$开头的任何内容,你就不能与jQuery冲突。
答案 2 :(得分:-1)
您的UL
不是jQuery元素对象,只是本机JavaScript元素。您需要使用jQuery的UL
获取$(UL)
才能使用特定于jQuery的方法。