2016-06-11 76 views
0

我有以下JS在页面布局(在运行ROR):隐藏的DIV的ID在页面加载

<script> 
    $(document).ready(function() { 
    document.getElementById('1').style.display = 'none'; 
    document.getElementById('2').style.display = 'none'; 
    document.getElementById('3').style.display = 'none'; 
    document.getElementById('4').style.display = 'none'; 
    document.getElementById('5').style.display = 'none'; 
    }); 
</script> 

我想有5个div S于页面加载被隐藏,但似乎无法让它起作用。我可以使用JS或JQuery。我曾经尝试这样做,以及:

$(window).load(function() { 
    ...js code... 
}); 

,仍然无法得到它隐藏在页面加载的div秒。

我需要写在JS中有什么divid 1..5被隐藏?

+3

如果你想让它们在页面加载中隐藏,为什么不把每个具有'display:none'属性的css类放入,比如'class =“hidden”'?除此之外,你的html看起来像什么,你是否在控制台上发生错误? –

+0

这些元素是否存在于代码运行时? – charlietfl

+0

这些问题提出了一些可能的解决方案,但我想为您提供一个可靠的答案,我们需要在页面加载时看到您的HTML以及您提出的JavaScript。否则,我们并不真正知道document.getElementById是不是发现DOM元素,或者是否有其他事情正在发生。 – hightempo

回答

-2

如果你使用jQuery只是做

$(document).ready(function() { 
    $("id").hide() 
}); 
+0

这是无效的jQuery – charlietfl

0

首先,不建议id先从数字。只是兼容性问题,不要问我。

其次,你的代码是特别多余的,它使得id s的目的失效。使用一个普通的课程或少量多余的,但只是将它们全部放入容器中并抓住所有的孩子。

<div id="container"> 
    <div></div> 
    <div></div> 
    <div></div> 
    <div></div> 
</div> 
$(document).ready(function(){ 
    $("#container div").hide(); 
}); 

调用.show.hide将切换display: none CSS属性。

+1

实际上一个元素的[id可以以数字开头,甚至可以是全部数字](http://w3c.github.io/html/dom.html#the-id-attribute)。唯一的限制是没有空格字符。仅出于兼容性原因,建议仅以信函开头。 [JSFiddle演示](https://jsfiddle.net/gdk17ee9/) –