创建div元素时出现奇怪的Javascript/JQuery行为
控制台创建div元素时出现奇怪的Javascript/JQuery行为,javascript,jquery,css,dom,Javascript,Jquery,Css,Dom,控制台 menuPaneToBe.title = document.createElement("div"); $(menuPaneToBe).append(menuPaneToBe.title); console.log(1) console.log(menuPaneToBe.title) $(menuPaneToBe.title).addClass("menuTitle"); console.log(2) $(menuPaneToBe.
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)
为什么标题只是[object HtmlLevel],而不是一个合适的对象?为什么我不能定班?MenuPaneToBe是设置为“显示块”的自定义标记
1 MenuPane.js:12
[object HTMLDivElement] MenuPane.js:13
Uncaught Error: Syntax error, unrecognized expression: [object HTMLDivElement] jquery-1.11.0.min.js:2
菜单窗格{
显示:块;
身高:100%;
宽度:30%;
左边框:1px纯黑;
}
这是一个奇怪的问题,如果menuPaneToBe
引用的是dom元素(不是jQuery对象),那么title属性将引用元素的title属性,它是一个字符串值。至少在Google Chrome中,当您为元素的标题赋值时,它会将其转换为字符串对象
因此,当您说menuPaneToBe.title=document.createElement(“div”)
时,它将字符串值[object htmldevelment]
分配给menuPaneToBe.title
,这是一个无效的jQuery选择器
然后,当您说$(menuPaneToBe.title)
时,它将抛出所述错误
演示:
只需将属性名称从title
更改为类似title2
<menu-pane id="menu"></menu-pane>
menu-pane {
display: block;
height: 100%;
width: 30%;
border-left: 1px solid black;
}
演示:什么是
menuPaneToBe
?menuPaneToBe的值?提供更多代码,提供HTMLSE ismenuPaneToBe
字符串或jQuery对象中没有错误-可以编辑它以重新创建问题。。。。还使用了浏览器
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)