jQuery从选择器开始

时间:2011-06-21 14:53:53

标签: javascript jquery jquery-selectors

这是我的代码:

<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仍然可见......我做错了什么?

6 个答案:

答案 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)

用单引号切换外部引号,它可以工作:

工作小提琴:http://jsfiddle.net/geertvdc/hv4Ls/

代码:

$('[class^="hide"]').hide();

答案 5 :(得分:0)

你可以这样做:

$(document).ready(function () {
    $("div[class*=hide]").hide();
});