我有一个使用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?
答案 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路径中添加更多不同的内容,这样就不会影响您在处理此事时未考虑/写入的页面的其他部分。