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