Jquery和动态id

时间:2011-08-22 18:25:26

标签: jquery

我在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>"; 

} ?>

5 个答案:

答案 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添加到您想要的任何容器中。