2015-12-03 57 views
-1

如何在每個單獨的點擊

function zxcv(el) { 
 
el.style.display = "none"; 
 
el.parentNode.parentNode.getElementsByClassName("thishere")[0].style.display = 'block'; 
 
return false; 
 
}

上面的代碼是不是我所需要的,因爲它只會激活要素之一發生只是「秀」 getElementsByClassName方法。

下面的代碼是不是我所需要,因爲它只有在激活點擊的元素出現的所有

function zxcv(el) { 
 
    el.style.display = "none"; 
 
    var elements = el.parentNode.parentNode.getElementsByClassName("thishere"); 
 
    for(var i in elements) { 
 
      elements[i].style.display = 'block'; 
 
    } 
 
    return false; 
 
}

請參閱JS小提琴here HTML和在那裏我目前(請注意,我會將onLoad選項更改爲無法打包,但JSFiddle似乎刪除了Frameworks和Extensions,或者至少我看不到它:/,所以我懷疑這就是爲什麼「答案」不是「當我測試自己時,答案顯示)。

我的專業知識是非常有限的,我卡住了;我只想要被點擊的元素「顯示」,而不是全部。請幫忙!

例如:

1 + 1 =兩個

兩個+兩個=四

如果點擊了 '1 + 1 =',那麼 '四大' 不顯,只是'兩個'

+0

你'html'在'fiddle'提供和你的企圖不符..沒有任何'parentNode'吧? –

+0

這是一致的,即使它始終不正確!我確實說明我的專業知識是有限的,因此我尋求幫助。我試圖儘可能有用,並解釋了我經歷的過程。我認爲降級我是因爲這樣做是相當苛刻的,因爲這樣做的標準是「這個問題沒有顯示任何研究工作;它不清楚/沒有用」。 – f484126

+0

爲了您的真實信息我還沒有投票給您,這讓人非常容易判斷,即使不確定一個自己評論自己的人是否已經被投票,這是非常可悲的事情。我評論說明自從我做了什麼以來的實際問題從你的帖子中瞭解它,以便我可以更好地幫助你..我的意思是沒有進攻.. –

回答

2

您可以使用nextElementSibling獲取下一個兄弟姐妹。不需要使用迭代。

function zxcv(el) { 
 
    el.style.display = "none"; 
 
    var elements = el.nextElementSibling; 
 
    elements.style.display = 'block'; 
 
    return false; 
 
}
<a class="mathslink" href="#" rel="nofollow" onClick="zxcv(this)">One + One Equals</a> 
 
<div class="thishere" style="display:none;"><span class="mathsanswer"><strong>Two</strong></span></div> 
 

 
<a class="mathslink" href="#" rel="nofollow" onClick="zxcv(this)">Two + Two Equals</a> 
 
<div class="thishere" style="display:none;"><span class="mathsanswer"><strong>Four</strong></span></div>

+0

非常感謝你,我現在知道我應該使用nextElementSibling。但是,當我測試並單擊鏈接轉到URL時,「答案」不會顯示。原始鏈接只有一個空白區域。 – f484126

+0

@ f484126如果我理解正確,你想保留數據並重定向到另一個頁面來顯示結果? –

+0

對不起,我不清楚。我實際上希望它像你的例子那樣行事,但我無法做到這一點。我稍微改變了href =「http://www.stackoverflow.com」target =「_ blank」而不是僅僅href =「#」。當我點擊Two + Two Equals時,我想讓答案代替問題。然而,當我點擊時,只有一個空白區域。我不知道爲什麼:( – f484126

相關問題