我在页面上有大约6 div
,并且一次只能看到其中一个。在页面加载期间,我隐藏了除第一个之外的所有其他div。
这是我的HTML结构。
<div id="A1">
</div>
<div id="A2">
</div>
<div id="B1">
</div>
<div id="B2">
</div>
<div id="C1">
</div>
<div id="C1">
</div>
我这样做是为了隐藏它们: -
$(document).ready(function(){
$("#A2").hide();
$("#B1").hide();
$("#B2").hide();
$("#C1").hide();
$("#C2").hide();
});
我如何获得可见div 的ID?我试过了: -
var current_div = $("div:visible");
current_div_id = current_div.attr('id');
输出: - 未定义
var current_div = $("div:visible");
current_div_id = current_div[0].id;
输出: - 空白
我出错了什么?
答案 0 :(得分:1)
修正了它。发布解决方案以帮助未来的窥视。
似乎jquery无法使用上面的代码找到当前的div。我所做的是,为所有div添加了一个共同的类。像这样: -
<div id="A1" class="divs">
</div>
<div id="A2" class="divs">
</div>
<div id="B1" class="divs">
</div>
<div id="B2" class="divs">
</div>
<div id="C1" class="divs">
</div>
<div id="C1" class="divs">
</div>
现在我用这种方式修改了我的JS: -
var current_div = $(".divs:visible");
current_div_id = current_div[0].id;
工作。因此,如果您遇到同样的问题,请记住为所有div设置一个公共类。
答案 1 :(得分:0)
答案 2 :(得分:0)
好吧,你的代码实际上正在工作,我可以使用这两种方法获得id
。您在此处遗漏了其他内容,请检查console
您还能得到什么。
只有一个问题,因为您在页面id
上复制了C1
两次,所以无法获得一致的结果。
<div id="A1">
A1
</div>
<div id="A2">
A2
</div>
<div id="B1">
B1
</div>
<div id="B2">
B2
</div>
<div id="C1">
C1
</div>
<div id="C2">
C2
</div>
<p id = "one"></p>
<p id = "two"></p>
$(document).ready(function(){
$("#A1").hide();
$("#B1").hide();
$("#B2").hide();
$("#C1").hide();
$("#C2").hide();
});
var current_div = $("div:visible");
current_div_id = current_div[0].id;
$("#one").text("ID: "+current_div_id);
var current_div = $("div:visible");
current_div_id = current_div.attr('id');
$("#two").text("ID using second method: "+current_div_id);