使用JQuery slideToggle和动态生成的PHP信息

时间:2012-11-06 23:59:58

标签: php jquery for-loop

我彻底迷惑了自己。

我有一个页面,其中包含使用PHP动态生成的信息。我正在尝试使用jQuery隐藏和显示信息。但是,当我执行代码时,该函数仅适用于第一个实例。

这是html / php代码:

<div id="container">

<?php

foreach ($datas as $name)
{
    if ($name['state'] === 'PA') 
    {
        echo
        '<input type="hidden" name="id" value="' . $name['id'] . '" />' .
        '<h1 id="name">' . htmlentities($name['name']) . '</h1>' .
        '<p id="descriptionlist">' .
        htmlentities($name['description']) . ' ' .
        '<br />' .
        '<ul id="link">' .
        '<li class="l1">' .
        '<a href="' . $name['site'] . '"target="_blank">' . $name['sname'] . '</a>' .
        '</li>' .
        '</ul>' .                           
        '</p>' .

'<div id = "locBar' . $name['id'] . '">' .  '<div id="locText' . $name['id'] . '">' .   
'<h2 id="location">Location</h2>' .
'</div>' . '</div>' .
'<div id="locDiv' . $name['id'] . '">' .

这是jQuery脚本:

$(document).ready(function(){
$('#locBar').click(function(){
$('#locDiv').slideToggle('slow')
})
});

显然,jQuery不明白,如果我在第二次迭代中点击div,那么任何事都应该发生。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

生成的html是什么样的? 我猜这是foreach循环的开始,你正在生成具有相同ID(locBar和locDiv)的多个div。您永远不应该有多个具有相同ID的项目。 将其更改为使用类