Javascript 单击列表成员时显示孩子
我想用javascript做一些扩展/折叠列表。据我所知,我做的每件事都是对的,但当我点击列表标题时,我发现 未捕获的语法错误:意外标记} 在和的html代码Javascript 单击列表成员时显示孩子,javascript,onclick,Javascript,Onclick,我想用javascript做一些扩展/折叠列表。据我所知,我做的每件事都是对的,但当我点击列表标题时,我发现 未捕获的语法错误:意外标记} 在和的html代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/199
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Kaç Yakıyor?</title>
<style type="text/css">
body
{
background-color:#CCC;
}
h1.header
{
font-family:"Courier New", Courier, monospace;
font-size:45px;
font-style:oblique;
font-weight:400;
text-align:center;
}
div.content
{
margin-top:100px;
margin-left:auto;
margin-right:auto;
width:61%;
background-color:#F00;
}
div.vehicles
{
margin-top:100px;
width:17%;
height:200px;
background-color:#0F6;
float:left;
overflow:auto;
}
li.c
{
font-weight:bold;
}
li
{
font-weight:normal;
display:none;
}
</style>
</head>
<body>
<?php
mysql_connect("localhost","root","123123") or die(mysql_error());
mysql_select_db("kacyakiyor");
$query = "SELECT marka,model from arabalar";
$result = mysql_query($query);
?>
<h1 class="header">KAÇ YAKIYOR</h1>
<hr width="500px"/>
<div class="vehicles">
<h2><strong><em>Araba</em></strong></h2><hr/>
<?php
while($row = mysql_fetch_array($result)){
echo "<ul >";
echo "<li.c id='seen'><a href='#' onclick='show('hidden')'>".$row['marka']."</a>";
echo "<ul>";
echo "<li id='hidden'>".$row['model']."</li>";
echo "</ul>";
echo "</ul>";
}
?>
<h2><strong><em>Motosiklet</em></strong></h2><hr/><br/></div>
<div class="content">asdfasfda</div>
<?php
mysql_close();
?>
<script type="text/javascript">
function show(id){
var hiddenElement = document.getElementById(id);
if(hiddenElement.style.display == 'none')
{
hiddenElement.style.display = 'block';
}
else
{
hiddenElement.style.display = 'none';
}
}
</script>
</body>
</html>
在这之后我得到了错误,但是我没有看到任何额外的}
<div class="content">asdfasfda</div>
换行
echo "<li.c id='seen'><a href='#' onclick='show('hidden')'>".$row['marka']."</a>";
到
更新
我注意到的一件事是,您正在循环中使用元素id,该循环将生成具有相同id的多个元素。您不能有多个具有相同id的元素,因此最好使用类并根据它们的类名选择它们。我将使用:
如果你需要更多的解释,请告诉我
附言:li.c-你是说li class='c'吗
您也可以用于类似目的。在javascript中转义引号时遇到问题 将此onclick更改为
onclick='show('hidden')'
到
除了其他海报所说的之外,您还需要更改这一行:
echo "<li.c id='seen'><a href='#' onclick='show('hidden')'>".$row['marka']."</a>";
到
回声;
这个
我能想到的另一件事是,你的数据中是否包含}。您可能需要执行htmlentities$行['marka']而不是PHP页面,您可以共享生成htmlwhat is li.c吗?嗯,我想这可能是我的解决方案。我尝试了你的建议,它显示了childs。当我单击第二个标题时,它显示了第一个标题的child,但我认为我可以处理这个问题。当然我不会拒绝你对这个问题的建议。无论如何,谢谢。我猜这是因为您使用的是ID,如果您使用的是行javascript,我猜一旦单击按钮,您需要选择父级,并且从父级“seed”as类中,您应该能够选择子级。祝你好运。我没能做到你说的。事实上,我意识到,当我放置一个警报方法并试图查看哪个列表项被单击时,无论我单击哪个列表项,它都表示第一个列表项被单击。
onclick='show('hidden')'
onclick='show(\"hidden\")'
echo "<li.c id='seen'><a href='#' onclick='show('hidden')'>".$row['marka']."</a>";