这是我的代码:
<script type="text/javascript">
$(document).ready(function () {
$("[class^=\"hide\"]").hide();
});
</script>
<div class="hide1">Hide</div>
<div class="show1">Show</div>
<div class="hide2">Hide</div>
<div class="show2">Show</div>
<div class="hide3">Hide</div>
<div class="show3">Show</div>
<div class="hide4">Hide</div>
<div class="show4">Show</div>
但是在页面加载时,hide
div仍然可见......我做错了什么?
答案 0 :(得分:2)
事实证明我正在正确地做所有事情,但div
s在一个视图(我正在使用MVC3)中,在$(document).ready
被调用之后被加载。将代码移动到View中解决了问题。
答案 1 :(得分:1)
为什么你有单独的课程?为什么不使用单个隐藏类并将上述属性(例如"hide1"
)设置为ids,那么您的选择器可以简单地在该类上,例如$('div.hide')
?
有关示例,请参阅http://jsfiddle.net/2GzpA/1/。
编辑:
对于您的问题,您评论:
@Tomgrohl我的代码实际上要复杂得多。我需要能够隐藏并单独显示每个div。
为什么不在这种情况下添加一个单独的类?然后您的选择器变为$('div.specificCaseHideClass')
。你可以拥有任意数量的课程,这是何时添加课程的一个很好的例子。
答案 2 :(得分:0)
试试这个简单的
$("div:even").hide();
答案 3 :(得分:0)
你确定包含了jquery吗?这似乎有效:http://jsfiddle.net/6ycbT/
另外,检查你的js控制台,看看是否有任何可能阻止此代码执行的错误
答案 4 :(得分:0)
答案 5 :(得分:0)
你可以这样做:
$(document).ready(function () {
$("div[class*=hide]").hide();
});