Javascript 无法从jQuery对象获取innerHTML
我正在使用谷歌地图api。 我写了下面的代码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); "> <
<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版本的innerHTMLhtml
$("#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);