javascript - I cant open a popup for a specific div in while loop (Javascript PHP)
问题描述
When I clicked the div with id ooo
no his specific div with id row['user_name']
won't popup
<!-- this code is inside a while loop -->
<div id="ooo" onclick="testado('.$row['usr_name'].')" class="link dropdown">
<h5 class="text-left" >'.$row['usr_name'].'</h5>
<img src="crownh.png" class="float-right" />
<div id="'.$row['usr_name'].'" class="modal">
<!-- Modal content -->
<div ><span class="close">×</span>
<p> '.$row['usr_name'].'</p> </div> </div>
</div>
<!-- this is the javascript -->
function testado(a) { // This function gets called when clicking the button
var modal = document.getElementById(a);
modal.style.display = "block";
}
Thanks
解决方案
您的代码工作正常:
https://jsfiddle.net/7w34fnp3/1/
我认为问题只是第一个中缺少一些撇号div
。尝试这个:
<div id="ooo" class="link dropdown" onclick="testado(\''.$row['usr_name'].'\')">
<h5 class="text-left">'.$row['usr_name'].'</h5>
<img src="crownh.png" class="float-right" />
<div id="'.$row['usr_name'].'" class="modal">
<!-- Modal content -->
<div><span class="close">×</span>
<p>'.$row['usr_name'].'</p>
</div>
</div>
</div>
我认为这是因为您使用单引号 ( echo '<...'
) 来回显此输出,而您正在做onclick="testado(matt)"
的不是onclick="testado('matt')"
.
有很多更有效的方法可以使用 onClick 侦听器而不是 onclick 事件来执行此代码。jQuery 在这里提供帮助。您还应该ooo
动态命名 div,因为您当前正在创建具有相同 id 的 div 负载。
此外,您应该练习缩进代码以使其更易于调试。
推荐阅读
- python-3.x - 'float' 类型的对象在字符串对象上没有 len()
- mysql - 如何在没有 Web 服务的情况下将 Xamarin.Forms 应用程序连接到 mysql 数据库
- c++ - 为什么即使看起来很合适,它也会显示错误?
- javascript - 如何防止 Travis-CI 生成 yarn.lock 或如何忽略 Lerna 发布以忽略工作树中未提交的更改
- c# - 如何创建开放泛型类的列表
? - php - 我如何在 php htaccess 文件中重定向这个 url
- python - Docker 在 Dockerfile 中编译 python 文件
- docker - 从派生的 docker 映像在特定 /home 文件夹中创建文件夹不起作用
- javascript - 当您可以只做 + 时, += 签署此代码的目的是什么?
- sql - DATE_SUB 的 Oracle SQL 语法错误问题