我在PHP中有一个Div循环,每个循环都有自己的id,根据MySQL中的id。使用JavaScript,我可以简单地为Div添加一个onclick事件处理程序,然后调用一个函数。现在对于Jquery,我如何获得动态id的Div元素呢?
<?php
while($row =mysql_fetch_assoc($query))
{
$id= $row['id'];
echo "<div id='$id' >$id</div>";
} ?>
答案 0 :(得分:1)
您应该使用类而不是id来标识目标。在PHP中创建元素时添加一个类,然后选择该类。
<?php
while($row =mysql_fetch_assoc($query))
{
$id= $row['id'];
echo "<div id='$id' class='someClass' >$id</div>";
} ?>
客户端脚本:
$('.someClass')...
答案 1 :(得分:1)
您可以将所有动态生成的div
标记包含在具有已知ID的另一个标记内(例如,我们将其称为container
)。然后,您可以循环浏览所有生成的div
标记,如下所示:
$('#container > div').click(function() {
//your goodies here
});
答案 2 :(得分:0)
你可以使用
$("Id*=yourdivid").click(function(){
//use this to access clicked div.
});
或者如果您为div分配了一些特定的类,那么您可以使用
$(".divclass").click(function(){
//this object will contain the div you clicked.
})
答案 3 :(得分:0)
我不是一个很大的php人,但是你可以在行id之前用一些静态单词加上div id(例如:for row#3,dynamic_3)
<?php
while($row =mysql_fetch_assoc($query))
{
$id= $row['id'];
echo "<div id='dynamic_$id' >$id</div>";
} ?>
然后你可以用jQuery获取div:
$('div[id^="dynamic_"]')
答案 4 :(得分:0)
你可以选择做的另一个选择是让jquery创建HTML标记(而不是PHP),你可以在其中创建一个JSON / Array控件来创建,然后执行以下操作:
var div=document.createElement('div');
$(div).html("My new Div")
.click(function(){
//PUT your custom scripts here
});
div.appendTo("#mainDiv");
现在您可以将div添加到您想要的任何容器中。