出于某种原因,它只找到一个div而不是找到所有具有该id的div。
JS:
jQuery('#showoffline').click(function(){
jQuery.each(jQuery('#offlineestreams'),function(){
jQuery(this).css("display","block");
});
});
Divs是这样的:
<div id="offlineestreams" style="display = none;">
Something here
</div>
<div id="offlineestreams" style="display = none;">
Something here2
</div>
但只有第一个显示:\为什么会发生这种情况?
答案 0 :(得分:1)
ID
必须是唯一的,您已复制了ID offlinestrams
。另一种解决方案是将class
添加到您要分组的divs
。试试下面的事情,
<div class="offlineestreams">
Something here
</div>
<div class="offlineestreams">
Something here2
</div>
jQuery('#showoffline').click(function(){
jQuery(".offlinestream").hide();
});
答案 1 :(得分:0)
ids
必须是唯一的,我很确定jQuery('#offlineestreams')
只会返回1个对象。你应该使用课程
答案 2 :(得分:0)
id应该是唯一的。尝试将类添加到您想要的div中,例如:
<div id="offlinestreams1" class="offlinestreams" style="display = none;">
Something here
</div>
<div id="offlinestreams2" class="offlinestreams" style="display = none;">
Something else here
</div>
然后你的脚本可能是:
jQuery('#showoffline').click(function(){
jQuery.each(jQuery('.offlineestreams'),function(){
jQuery(this).css("display","block");
});
});
答案 3 :(得分:0)
由于元素id
必须是唯一的,因此此行为未定义且特定于浏览器。有时你可能会得到一个结果,有时甚至全部,甚至有时甚至没有。
使用class
代替id
,或使id
唯一。
<div class="offlineestreams" style="display = none;">
Something here
</div>
<div class="offlineestreams" style="display = none;">
Something here2
</div>
和...
jQuery('.offlineestreams') ...
此外,每当您在渲染,DOM元素选择/遍历等方面遇到意外行为时,非常有用的第一步将是validate the markup。如果标记无效,您需要在尝试调试有关该标记的问题之前修复它。
答案 4 :(得分:0)
DOM中的ID应该是唯一的。如果您有多个具有相同ID的元素,我建议将它们更改为类。然后在类上运行您的每个函数。然后你可以按照以下方式执行你的javascript:
$('#showoffline').click(function(){
$.each($('.offlineestreams'), function(){
$(this).css({'display': 'block'});
});
});
同时更新您的HTML:
<div class="offlineestreams" style="display:none;">Something here</div>
<div class="offlineestreams" style="display:none;">Something here</div>