menuPaneToBe.title = document.createElement("div");
$(menuPaneToBe).append(menuPaneToBe.title);
console.log(1)
console.log(menuPaneToBe.title)
$(menuPaneToBe.title).addClass("menuTitle");
console.log(2)
$(menuPaneToBe.title).html("Title"); //Just placeholders, gets changed by circular-view
console.log(3)
控制台
1 MenuPane.js:12
[object HTMLDivElement] MenuPane.js:13
Uncaught Error: Syntax error, unrecognized expression: [object HTMLDivElement] jquery-1.11.0.min.js:2
为什么标题只是[对象HTMLDivElement]而不是正确的对象?为什么我不能上课? MenuPaneToBe是一个自定义标签,设置为显示块。
<menu-pane id="menu"></menu-pane>
menu-pane {
display: block;
height: 100%;
width: 30%;
border-left: 1px solid black;
}
答案 0 :(得分:1)
这是一个奇怪的问题,如果menuPaneToBe
指的是dom元素(不是jQuery对象),那么title属性将引用元素的title属性,它是一个字符串值。至少在Google Chrome中,当您为元素的标题指定值时,它会将其转换为字符串对象。
因此,当您说menuPaneToBe.title = document.createElement("div")
时,它会将字符串值[object HTMLDivElement]
分配给menuPaneToBe.title
,这是一个无效的jQuery选择器。
然后,当你说$(menuPaneToBe.title)
时,它会抛出上述错误。
演示:Fiddle
只需将属性名称从title
更改为其他内容,例如title2
var menuPaneToBe = $('#menu')[0];
menuPaneToBe.title2 = document.createElement("div");
$(menuPaneToBe).append(menuPaneToBe.title2);
console.log(1)
console.log(menuPaneToBe.title2)
$(menuPaneToBe.title2).addClass("menuTitle");
console.log(2)
$(menuPaneToBe.title2).html("Title"); //Just placeholders, gets changed by circular-view
console.log(3)
演示:Fiddle