2016-06-11 77 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/) –