获取jQuery、PHP的动态元素id

获取jQuery、PHP的动态元素id,php,jquery,Php,Jquery,这里是我的代码,它只适用于第一行。 我想将$courseid传递给Jquery,这样无论我在何处单击coursename,它都应该显示当前课程摘要,如果我单击下一个coursename,则上一个摘要应该隐藏并显示当前摘要。谁能帮我一个清晰的代码。页面上不能有多个Id相同的元素。按类名选择,或者应用更复杂的选择器,如$'yourtableid div',如果该div仅是表中的div,而不是使用内联JavaScript:onclick=ShowHide,请使用jQuery附加事件: function

这里是我的代码,它只适用于第一行。
我想将$courseid传递给Jquery,这样无论我在何处单击coursename,它都应该显示当前课程摘要,如果我单击下一个coursename,则上一个摘要应该隐藏并显示当前摘要。谁能帮我一个清晰的代码。

页面上不能有多个Id相同的元素。按类名选择,或者应用更复杂的选择器,如$'yourtableid div',如果该div仅是表中的div,而不是使用内联JavaScript:onclick=ShowHide,请使用jQuery附加事件:

function ShowHide() {
    $('#enclosure').animate({"height": "toggle"}, {duration: 1000});
}
    function ShowHide() {
      $('.enclosure').animate({"height": "toggle"}, {duration: 1000});
    }

这是未经测试的代码,但应该能告诉您它的要点

您也可以通过以下方式执行此操作:

$(function() {                                // encapsulate in document.ready
  $('.show-hide-action').click(function() {   // bind action
    $(this)                                   // 'this' is the clicked element
      .parent()                               // parent should be the TD
      .next(".enclosure")                      // select the corresponding .enclosure  
      .animate({"height": "toggle"}, {duration: 1000});
  });
});
我通过给div一个include_{ID}使每个元素都有一个唯一的ID,因为数据库中的ID是唯一的,每个div也是唯一的


编辑:请参阅HTML的更新

考虑使用类代替id。HTML页面中只能有一个唯一id。这很好,但我应该在哪里传递$courseid,它显示唯一位置它可以,但只有一个courseid如果有新问题,请提出新问题,而不是编辑此问题并使其答案无效。感谢您的回答,但当我单击第一行时,它会一次显示所有课程摘要。如果您更改HTML,请将div移动到允许的位置。例如,就在收盘后。据我所知,它是不允许在和之间无效的是,但我只是展示了他的问题的解决方案,而不是他的无效HTML。。但我在一个有效的HTML中更改了我的。这应该可以解决他的问题,但我不能保证他的动画效果会有多大作用。。因为表格和动画高度不太协调。。我想说,使用div'sHi Tricker创建您自己的表谢谢您的代码,但是它以错误的方式显示,比如当我单击当前coursename时,它显示正确,当我单击下一个coursename时,当前coursename没有隐藏,也没有显示新的coursename
    function ShowHide() {
      $('.enclosure').animate({"height": "toggle"}, {duration: 1000});
    }
<td><a class="show-hide-action">'$coursename.'</a></td>
<div class="enclosure" style="display:none;">'.$summary.'</div>
$(function() {                                // encapsulate in document.ready
  $('.show-hide-action').click(function() {   // bind action
    $(this)                                   // 'this' is the clicked element
      .parent()                               // parent should be the TD
      .next(".enclosure")                      // select the corresponding .enclosure  
      .animate({"height": "toggle"}, {duration: 1000});
  });
});
$cour = mysql_sql('SELECT c.id, c.category, cc.name, c.fullname,c.summary FROM 
mdl_course c, mdl_course_categories cc WHERE c.id = cc.course');

echo '<table>';                       
foreach($cour as $cou) 
{
    $coursename = $cou->fullname;
    $courseid = $cou->id;
    $summary = $cou->summary;
    echo '
        <tr style="border:1px solid #BACC82;">  
            <td>
                <a onclick="ShowHide('.$courseid.'); return false;">'.$coursename.'</a>
                <!--SHOW AND HIDE DIV-->
                <div id="enclosure_'.$courseid.'" style="display:none;">'.$summary.'</div>
            </td>
        </tr>
    ';
}
echo '</table>';
function ShowHide(id) {
    $('#enclosure_'+ id).animate({"height": "toggle"}, {duration: 1000});
}