while-loop div没有反应

时间:2012-01-08 16:38:46

标签: php javascript

我有一个使用while循环创建的div列表

while($row = mysql_fetch_array($result)){
$output = "<div id='drag'>$row[id] - $row[name] - $row['email']</div>";
echo $output;}

当我尝试将这些div突出显示几秒钟时。 只有第一个div似乎在起作用。

$("#drag").effect("highlight", {}, 2000);

是否有任何策略可以通过这种方式突出显示所有输出?是否有办法突出显示某个div或div?

3 个答案:

答案 0 :(得分:5)

根据定义,

ID必须是唯一的。你可以改用类。

while($row = mysql_fetch_array($result)){
    $output = "<div class='drag'>$row[id] - $row[name] - $row['email']</div>";
    echo $output;
}

则...

$(".drag").effect("highlight", {}, 2000);

答案 1 :(得分:1)

id用于给出div唯一ID。所以在while循环中,你在循环中为所有div提供相同的id。这就是为什么当你试图突出显示时,它正在影响第一个div。

试试这段代码:

while($row = mysql_fetch_array($result)){
    $output = "<div class='drag'>$row[id] - $row[name] - $row['email']</div>";
    echo $output;
}

之后将效果应用于该类拖动

$(".drag").effect("highlight", {}, 2000);

希望它会对你有所帮助:)。

答案 2 :(得分:0)

不允许在具有相同ID的页面中使用多个项目,虽然它可能适用于某些用例,但会导致其他用户出现问题(如您所见)。通常,除非需要ID,否则您将需要使用类。我还建议您使用id更明确地指定选择器(即更多元素)。

对于我自己的代码,我倾向于使用页面正文的id(即,它是哪个页面)和页面上的不同元素(标题内容,主要内容,右栏内容,页脚内容)。我很少在其他任何地方使用id(尽管已知它会发生)。

将它切换到课程后,您可以轻松更改JS以执行类似

的操作
$("div.drag").effect("highlight", {}, 2000);

如果可能的话,在div.drag路径中添加更多不同的内容,这样就不会影响您在处理此事时未考虑/写入的页面的其他部分。