请指导我如何使用jQuery找到特定的div来跟随html -
<div class="tab_container">
<div id="tabs-1111" class="tab_content" style="display: block;">
<p>26 High Street, Slough, SL1 1EP</p>
<p></p>
</div>
<div id="tabs-1110" class="tab_content" style="display: none;">
<p></p>
<p></p>
<div id="GoogleMap_Canvas"
style="width: 410px; height: 450px; position: relative; overflow: hidden;">
<p></p>
</div>
</div>
</div>
我想检查带有'tab_content'类的第一个div是否包含id ='GoogleMap_Canvas'的div - 对于上面的html,它应该是假的,因为它在第二个div中。
我尝试使用 -
if ($(".tab_content:first").children('#GoogleMap_Canvas').length > 0)
or
if ($(".tab_content:nth-child(1)").children('#GoogleMap_Canvas').length> 0)
这似乎对我很好。
但是,我很困惑为什么跟随jQuery返回null?
($(".tab_content")[1]).children('#GoogleMap_Canvas') //returns null
谢谢!
答案 0 :(得分:1)
您可以尝试使用jQuery的has selector来获取包含“GoogleMap_Canvas”div的'tab_content'div:
var googleDivContainer = $(".tab_content").has('#GoogleMap_Canvas');
答案 1 :(得分:1)
由于您正在检查唯一ID,因此不需要那么复杂。
if ($('#GoogleMap_Canvas').length > 0)
//map div exists
我相信你得到的是因为你在非jquery对象上调用.children。试试这个:
$($(".tab_content")[1]).children('#GoogleMap_Canvas')
或更好:
$(".tab_content:eq(1)").children('#GoogleMap_Canvas')
答案 2 :(得分:1)
返回NULL
($(".tab_content")[1]).children('#GoogleMap_Canvas')
因为$(“。tab_content”)[1]返回一个没有子方法的DOM元素。
添加额外的“$”以将结果转换为jQuery对象
$($(".tab_content")[1]).children('#GoogleMap_Canvas')
答案 3 :(得分:1)
“我想检查带有'tab_content'类的第一个div是否包含id为'= GoogleMap_Canvas'的div”
使用它:
if ($(".tab_container").children('.tab_content:first').children('#GoogleMap_Canvas').length > 0){
// do something
}
答案 4 :(得分:0)
你的最后一行返回null
,因为$(".tab_content")[1]
返回一个DOM元素,而不是jQuery对象,而DOM元素不会公开children()
方法。
请注意eq()返回一个jQuery对象,因此以下代码可以工作:
var children = $(".tab_content").eq(1).children('#GoogleMap_Canvas');
答案 5 :(得分:0)
试试这个:
var length = $(".tab_content[id*='GoogleMap_Canvas']").length;