Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建div元素时出现奇怪的Javascript/JQuery行为_Javascript_Jquery_Css_Dom - Fatal编程技术网

创建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 is
menuPaneToBe
字符串或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)