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 は、2 回目の反復で div をクリックすると、何かが起こるはずであることを理解していません。これを修正するにはどうすればよいですか?

4

1 に答える 1

0

生成された html はどのように見えますか? これは foreach ループの始まりであるため、同じ ID (locBar と locDiv) を持つ複数の div を生成していると推測しています。同じ ID を持つアイテムを複数持つことはできません。代わりにクラスを使用するように変更します

于 2012-11-07T00:05:25.283 に答える