Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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
Javascript 将单击事件添加到php生成的元素_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 将单击事件添加到php生成的元素

Javascript 将单击事件添加到php生成的元素,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在制作一个生成div表的页面。每行有一个带有链接的单元格。单击该链接时,当前行和下一行之间的隐藏div将切换为slide out 链接将具有id=“clickLink\u 10”,隐藏的div将具有id=“10”和class=“hiddenDiv”。数字10是从数据库中的帖子id生成的动态数字 我有动画工作良好,只要我硬代码的数字。但是我想动态地将链接连接到它的隐藏div,因为这些行将从数据库中获取 下面是一个示例,演示了html的外观(实际上更复杂,但这是关键部分): 布拉布拉 布拉布拉

我正在制作一个生成div表的页面。每行有一个带有链接的单元格。单击该链接时,当前行和下一行之间的隐藏div将切换为slide out

链接将具有id=“clickLink\u 10”,隐藏的div将具有id=“10”和class=“hiddenDiv”。数字10是从数据库中的帖子id生成的动态数字

我有动画工作良好,只要我硬代码的数字。但是我想动态地将链接连接到它的隐藏div,因为这些行将从数据库中获取

下面是一个示例,演示了html的外观(实际上更复杂,但这是关键部分):


布拉布拉
布拉布拉
布拉布拉
下面是我在jQuery中要做的事情:

hiddenDivs = $('.hiddenDiv');

for(var i = 0; i < hiddenDivs.length; i++ ) {
   $("#clickLink_" + hiddenDivs[i].id).click( function() { 
      $(hiddenDivs[i]).slideToggle(1000);
   });
}
hiddenDivs=$('.hiddenDiv');
对于(变量i=0;i

这显然不起作用。我知道我对I变量的处理是错误的,所以请查看这段伪代码。非常感谢您的帮助。

您可以使用带有属性选择器的
^=
操作符来选择元素。
^=
操作符告诉它查找“以”某物开头的属性,因此:

$("a[id^=comment_]").click(function(e){
   e.preventDefault();
   var hideId = $(this).attr("id").replace("comment_","");
   $("#"+hideId).slideToggle(1000);
});

因此选择器
a[id^=comment\uquo;
基本上是说,选择id以
comment\uquo;开头的所有锚定标记。一个有效的选项可以使用
数据-
属性。我还将更改您的数字id,因为只有数字不是有效的html id

HTML

<div><a href="#" class="clickLink" data-hidden-id="11">CLICK HERE</a></div>
<div class="hiddenDiv" id="hidden_11">

<div><a href="#" class="clickLink" data-hidden-id="1">CLICK HERE</a></div>
<div class="hiddenDiv" id="hidden_1">

<div><a href="#" class="clickLink" data-hidden-id="3">CLICK HERE</a></div>
<div class="hiddenDiv" id="hidden_3">

你打算用
class=“hiddenDiv”
结束
div
吗?@manta忘了把它放在示例代码中。非常感谢。
<div><a href="#" class="clickLink" data-hidden-id="11">CLICK HERE</a></div>
<div class="hiddenDiv" id="hidden_11">

<div><a href="#" class="clickLink" data-hidden-id="1">CLICK HERE</a></div>
<div class="hiddenDiv" id="hidden_1">

<div><a href="#" class="clickLink" data-hidden-id="3">CLICK HERE</a></div>
<div class="hiddenDiv" id="hidden_3">
$(".clickLink").click( function() { 
   var hiddenDivId = "hidden_" + $(this).data("hidden-id");
   $("#" + hiddenDivId ).slideToggle(1000);
});