Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在HTML中创建可扩展的FAQ页面?_Html_Google Sites - Fatal编程技术网

如何在HTML中创建可扩展的FAQ页面?

如何在HTML中创建可扩展的FAQ页面?,html,google-sites,Html,Google Sites,我想为我的网站创建一个FAQ页面,将所有问题列为超链接。当点击链接时,该问题的答案应该在其下方展开 默认情况下,答案需要隐藏,最好单击链接以切换答案的可见性 有什么想法吗 编辑 我尝试了其中的一些建议,但不幸的是,谷歌网站似乎不允许在html中使用这些功能。我不能使用脚本、样式、嵌入、iframe或任何它将显示的基本文本格式以外的内容。大家好主意,但看起来我不得不接受目录式的常见问题解答。好吧,把答案放在问题下方的div容器中 默认情况下,div将具有display:hidden属性 单击链接后

我想为我的网站创建一个FAQ页面,将所有问题列为超链接。当点击链接时,该问题的答案应该在其下方展开

默认情况下,答案需要隐藏,最好单击链接以切换答案的可见性

有什么想法吗

编辑


我尝试了其中的一些建议,但不幸的是,谷歌网站似乎不允许在html中使用这些功能。我不能使用脚本、样式、嵌入、iframe或任何它将显示的基本文本格式以外的内容。大家好主意,但看起来我不得不接受目录式的常见问题解答。

好吧,把答案放在问题下方的
div
容器中

默认情况下,div将具有
display:hidden
属性

单击链接后,此CSS样式将使用JavaScript删除

类似这样的查询(需要测试输入错误等):


这里有一种可能的方法:

<html><body><script>

function toggleElement(id)
{
    if(document.getElementById(id).style.display == 'none')
    {
        document.getElementById(id).style.display = '';
    }
    else
    {
        document.getElementById(id).style.display = 'none';
    }
}
</script>
<p>
<a href="javascript:toggleElement('a1')">Is this a question?</a>
</p>
<div id="a1" style="display:none">
This is an answer.
</div>
</body>
</html>

函数切换元素(id)
{
if(document.getElementById(id).style.display=='none')
{
document.getElementById(id).style.display='';
}
其他的
{
document.getElementById(id).style.display='none';
}
}

这是一个答案。
使用jQuery的简单示例:

JavaScript/jQuery

<script type="text/javascript">
$(document).ready(function(){
    $('.faqlink').click(function(){
        $('.content').hide();
        $(this).next('.content').show();
    });
});
</script>

$(文档).ready(函数(){
$('.faqlink')。单击(函数(){
$('.content').hide();
$(this.next('.content').show();
});
});
CSS


.内容{
显示:隐藏;
}
HTML

我的常见问题解答
乱数假文
乱数假文
乱数假文

在HTML中,您使用以下模式:

<div style="parentContainer">
  <div style="titleContainer" onclick="toggleContents(this)">Link to click on</div>
  <div style="contentContainer">Some content here.</div>
</div>

您可能想学习“可扩展FAQ”的代码-可在GitHub上获得: 它在/UI/Templates/Front/FAQsList.php上有一个可扩展的折叠机制
()

不幸的是,谷歌网站似乎不支持样式。你不需要隐藏()部分。只需执行以下操作:$(this).next('.content').toggle();并将链接从隐藏和显示切换,显示应为“无”,而不是“隐藏”。如果需要从外部页面链接到其中一个链接,该怎么办?href=“#””没有用,并且在我的Phonegapp应用程序上给了我一些问题。没有它,行为是正确的。
<style type="text/css">
.content {
    display: hidden;
}
</style>
<h2>My FAQ</h2>
<a class="faqlink" href="#">Link 1</a>
<div class="content">lorem ipsum</div>
<a class="faqlink" href="#">Link 2</a>
<div class="content">lorem ipsum</div>
<a class="faqlink" href="#">Link 3</a>
<div class="content">lorem ipsum</div>
<div style="parentContainer">
  <div style="titleContainer" onclick="toggleContents(this)">Link to click on</div>
  <div style="contentContainer">Some content here.</div>
</div>
function toggleContents(elm) {
  var contentContainer = elm.parentNode.getElementsByTagName("div")[1];
  contentContainer.style.display = (contentContainer.style.display == 'block') ? 'none' : 'block';
}