【发布时间】:2014-01-17 14:29:39
【问题描述】:
我正在尝试让我的 javascript 在每条评论被点击时弹出一条消息。
我有 3 个评论框,每个下方都有 1 个“弹出”按钮,当点击“弹出”时,它会提示一条消息(“Ouyeah!”)
仅单击顶部的第一个“弹出”链接会提示消息“Ouyeah!”,并提示消息 3 次。单击其他 2 个“弹出”链接没有任何动作。
代码:
<div class="media">
<div class="media-body">
<p align="right">
<span><a href='javascript:;' id="reply_open">popup</a></span>
<div class="reply_form_div" STYLE="display:none;"></div>
</p>
</div>
<div class="media">
<div class="media-body">
<p align="right">
<span><a href='javascript:;' id="reply_open">popup</a></span>
<div class="reply_form_div" STYLE="display:none;"></div>
</p>
</div>
<div class="media">
<div class="media-body">
<p align="right">
<span><a href='javascript:;' id="reply_open">popup</a></span>
<div class="reply_form_div" STYLE="display:none;"></div>
</p>
</div>
JS:
<script type="text/javascript">
$("#reply_open").parent().parent().parent().parent().children(".media-body").children("p").children("span").children("#reply_open").click(function(){
alert ("Ouyeah!");
</script>
仅单击顶部的第一个“弹出”链接会提示消息“Ouyeah!”,并提示消息 3 次。单击其他 2 个“弹出”链接没有任何动作。
如何解决这个问题?非常感谢,
【问题讨论】:
-
首先,元素
ids 在页面中必须是唯一的。改变它,看看它会把你带到哪里。 -
天哪,请不要在定位元素时使用
.parent()x5。使用.closest-- 否则下次你更改 DOM 时,此函数可能会中断。 (根据您的应用程序的大小,定位/修复也将是一个巨大的痛苦) -
谢谢 Jason P。你建议我改用类吗?
-
你的 HTML 看起来也坏了 - 'div class="media"' 的接近
div在哪里?
标签: javascript jquery html parent children