0

我把自己彻底搞糊涂了。

我有一个页面,其中包含使用 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,那么任何事情都会发生。我该如何解决?

4

1 回答 1

0

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

于 2012-11-07T00:05:25.283 回答