2014-07-21 15 views
0

我正在嘗試編寫一個小腳本,當鼠標滑過/滑出時它會自動顯示/隱藏div的內容。我想要做的是讓標題可見,並且當有人將鼠標懸停在標題上時,可以看到更多文字。來自給定Javascript對象參數的Javascript訪問嵌套HTML元素

問題是我想只顯示/隱藏任何給定元素的特定內部div,而不是隱藏整個元素。我有很多的元素使手寫的JavaScript爲每一個他們的是一個有點傻

我的HTML代碼是這樣:

<li id="job1" onmouseover ="div2mouseover(this)" onmouseout="div2mouseout(this)"> 
    <div style = "display:none" id="jobDescription"> 
     <p> Blablabla</p> 
    </div> 
<li> 

我的JavaScript代碼是這樣:

<script type="text/javascript"> 

    function div2mouseover(obj) 
    { 
     //obj.style.display = "none"; //I can reach that 
     obj.getElementById("jobDescription").style.display = "initial"; //I can't reach that 
    } 
</script> 

所以與obj.style.display我可以編輯任何給定的元素的可見性,但我無法達到其內部的div,我試圖達到。

我已經成功地做到這一點像這樣的單個元素:

document.getElementById("jobDescription").style.display = "initial"; 

但有了這個辦法,我必須寫我所有的工作內容,這是一個很大的腳本。 有什麼建議?

+0

ID應該是唯一的。改爲使用類,並使用'obj.querySelector(「。classNameHere」)' – nnnnnn

+0

O男人(或女人可能),你太棒了!像魅力一樣工作..非常感謝! –

回答

0

您也可以通過它們的位置來引用元素。

例如,如果你想顯示的DIV總是「懸停」裏裏面的第一個div你可以做

function div2mouseover(obj) { 
    var div = obj.getElementsByTagName("div")[0]; 
    div.style.display = "initial"; 
} 

,如果你不喜歡這樣你不需要在任何的div的ID 。

0

來自朋友的評論NNNNNN解決了我的情況。(也許其他的答案可能工作以及)

ID應該是唯一的。改爲使用類,並使用obj.querySelector(「。classNameHere」) - nnnnnn 12分鐘前

謝謝各位!