Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.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
Javascript 无法从jQuery对象获取innerHTML_Javascript_Jquery_Innerhtml - Fatal编程技术网

Javascript 无法从jQuery对象获取innerHTML

Javascript 无法从jQuery对象获取innerHTML,javascript,jquery,innerhtml,Javascript,Jquery,Innerhtml,我正在使用谷歌地图api。 我写了下面的代码 <div id="map"></div> 结果是: [ <div id=​"map" style=​"width:​ 1218.222222328186px;​ position:​ relative;​ background-color:​ rgb(229, 227, 223)​;​ overflow:​ hidden;​ -webkit-transform:​ translateZ(0)​;​ ">​ <

我正在使用谷歌地图api。 我写了下面的代码

<div id="map"></div>
结果是:

[
<div id=​"map" style=​"width:​ 1218.222222328186px;​ position:​ relative;​ background-color:​ rgb(229, 227, 223)​;​ overflow:​ hidden;​ -webkit-transform:​ translateZ(0)​;​ ">​
<div style=​"position:​ absolute;​ left:​ 0px;​ top:​ 0px;​ overflow:​ hidden;​ width:​ 100%;​ height:​ 100%;​ z-index:​ 0;​ ">​…​</div>​
</div>​
]
[
​
​…​​
​
]
如何获取innerHTML:

<div style=​"position:​ absolute;​ left:​ 0px;​ top:​ 0px;​ overflow:​ hidden;​ width:​ 100%;​ height:​ 100%;​ z-index:​ 0;​ ">​…​</div>​
​…​​
我尝试了
$(“div#map>div”)
,但没有返回任何结果。 为什么?是因为Javascript生成了innerHTML吗? 我如何获取它并在上面的div中插入另一个div

非常感谢。

使用
html()
方法从jQuery对象获取html

console.log($("div#map").html());

要从有效的jquery选择器获取普通javascript dom对象,请使用
get(0)
[0]

$("#map")[0]//note that as id's are unique, you do not need to have anything else
            //in here to target them
拥有普通DOM对象后,就可以使用
innerHTML

$("#map")[0].innerHTML
尽管一种更简单的方法是使用jQuery,因为您已经在使用jQuery版本的innerHTML
html

$("#map").html()
至于第二个问题,您可以在div中插入一个div,如下所示:

var newDiv = document.createElement("div");
newDiv.innerHTML = "simple text, probably want to make more elements and set attributes and build them using .appendChild().";
$("#map")[0].appendChild(newDiv);
对于map的父级,也可以这样做:

$("#map")[0].parentNode.appendChild(newDiv);

$()返回包含搜索结果的数组,即使只有一个匹配的元素。这就是为什么答案告诉您使用$(“#map”)[0]非常感谢您的回答。但是使用$(“#map”).html()时没有返回任何内容。我想获取内部HTML$(“#map”)[0].child.child innerHTML。如何获取它?@user1836330-如果
$(“#map”).html()中没有任何内容,则该页面或元素可能尚未加载。如果您想获取
$(“#map”)
子级的innerHTML,请使用<代码>$(“#map”).find()
我尝试了很多次,并更改了代码的位置。但结果仍然是“”。我想做的是向google.maps.drawing.DrawingManager添加一个自定义控件。我找不到这样做的方法。非常感谢你!当我刷新页面时。第一次,console.log的结果($(“div#map”)[0]);是​​ 然后,如果我再次刷新,结果将变成htmldevelment@user1836330-尝试用$(function(){/*code here*/})包围jquery;我尝试了console.log($(“div#map”).html();但是没有返回任何内容。@user1836330-如果您尝试
console.log($(“div#map”).html()并且没有任何内容,那么可能您在填充映射之前调用它太早了,或者您有一个错误阻止了它的执行。我尝试了很多次并更改了代码的位置。但结果仍然是“”。我想做的是向google.maps.drawing.DrawingManager添加一个自定义控件。我找不到这样做的方法。非常感谢你!
$("#map")[0].parentNode.appendChild(newDiv);