Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP foreach循环中创建jQuery函数可以访问的动态类_Php_Jquery_Html_Foreach - Fatal编程技术网

在PHP foreach循环中创建jQuery函数可以访问的动态类

在PHP foreach循环中创建jQuery函数可以访问的动态类,php,jquery,html,foreach,Php,Jquery,Html,Foreach,我有一个问题,这证明是困难的。我有一个论坛,对一个问题有多个回答,从数据库中提取并使用foreach循环(PHP)显示。我想要一个“编辑您的响应”函数,并且有一个jquery函数,它将“显示”一块HTML,其中包括每个响应下面的输入。问题是,当我在一个响应上选择edit按钮时,它会在每个响应下显示HRML的bloack,因为它的目标是类“theDiv”。是否有可能让jquery函数只选择一个……即,让foreach循环中的每个响应都有一个动态创建的唯一类,jquery函数可以将其作为目标?真的很

我有一个问题,这证明是困难的。我有一个论坛,对一个问题有多个回答,从数据库中提取并使用foreach循环(PHP)显示。我想要一个“编辑您的响应”函数,并且有一个jquery函数,它将“显示”一块HTML,其中包括每个响应下面的输入。问题是,当我在一个响应上选择edit按钮时,它会在每个响应下显示HRML的bloack,因为它的目标是类“theDiv”。是否有可能让jquery函数只选择一个……即,让foreach循环中的每个响应都有一个动态创建的唯一类,jquery函数可以将其作为目标?真的很难看到如何做到这一点

  <html>
  <head>
  <style type="text/css">
    .theDiv{
      display:none;
     }
    </style>

    <link href="styles/threads_page.css" media="all" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="scripts/jquery-1.9.1.js"></script>
    <script type="text/javascript">
    $(function() {
        $(".show").click(function() {
            $(".theDiv").show("normal");
        });
        $(".hide").click(function() {
            $(".theDiv").hide("normal");
         });
      });
      </script>
  </head>
  <body>

    <?php foreach($responses as $response):?>
    <h3><?php echo $response->author . "<br/>"; 
      echo $response->content;                   
      echo "<div class=\"theDiv\">
          <form action=\"question_gallery.php\" method=\"post\" class=\"form\">
          <table>
           <tr> 
                 <td>      
                    Edit your response:         
                       <input class=\"question_field\" name=\"question\"/>
                  </td>
           </tr>
          </table>                
       </form>
         </div>
       <table>
        <tr>
          <td>
               <button class=\"show\">Edit response</button>
          </td>
         <td>
           <button class=\"hide\">Close</button>
        </td>
       </tr> 
      </table>  
     ";} ?> 
  <?php endforeach; ?>

   </body>
   </html>

提夫先生{
显示:无;
}
$(函数(){
$(“.show”)。单击(函数(){
美元(“.theDiv”)。显示(“正常”);
});
$(“.hide”)。单击(函数(){
$(“.theDiv”).hide(“正常”);
});
});

$(this)
开始遍历DOM:


(此)
是您单击的元素
.closest(“table”)
在DOM层次结构中向上搜索包含的
元素
.prev(“.theDiv”)
选择紧靠它前面的元素,只要它有
class=“theDiv”
。这适用于HTML,因为表和div是顺序对。

使用
$(This)
只针对单击的元素。从
This
开始,遍历DOM到所需的元素。巴尔马和所有人,非常感谢。我是jquery的新手。你能再解释一下你的答案吗……我会使用你上面引用的代码吗?谢谢你的解释。但是如果你想成为一名程序员,你需要学习如何阅读和理解文档。你不能指望人们用勺子喂你所有的东西。这与jquery新手无关,这只是程序员必备的技能。非常感谢。我会在几个小时内尝试,并让你知道。我同意。我是一名有6个月编码经验的医生……你的帮助很好。谢谢你,我只是想说声谢谢。这非常有效,给了我新的研究领域…遍历DOM。我只需要被引导到正确的方向。令人惊叹的。
$(function() {
    $(".show").click(function() {
        $(this).closest("table").prev(".theDiv").show("normal");
    });
    $(".hide").click(function() {
        $(this).closest("table").prev(".theDiv").hide("normal");
     });
});