2015-12-03 44 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

相关问题