【发布时间】:2011-06-13 15:33:00
【问题描述】:
这是html。如果单击链接,我想用一些文本替换它前面的跨度元素。
<p><span id="sp1">that1</span> <a href="#" id="update1">Update1</a></p>
<p><span id="sp2">that2</span> <a href="#" id="update2">Update2</a></p>
<p><span id="sp3">that3</span> <a href="#" id="update3">Update3</a></p>
<p><span id="sp4">that4</span> <a href="#" id="update4">Update4</a></p>
<p><span id="sp5">that5</span> <a href="#" id="update5">Update5</a></p>
如您所见,我的想法是为锚点中的跨度提供相同的 id 和一个数字。
在我的 jquery 代码中,我遍历所有锚元素,给它们一个点击事件,导致它前面的跨度元素被替换。
<script type="text/javascript" >
$(document).ready(function() {
var numSpans = $("span").length;
for (n=0;n<=numSpans;n++) {
$("a#update" + n).click(function(e){
$('span#sp' + n).replaceWith('this');
e.preventDefault();
});
}
});
</script>
由于某种原因,这不起作用。
我做错了什么?
【问题讨论】:
-
@zod 这是解决方案的一部分,但只是这样的链接并不是那么有用(除非您已经知道答案)。
-
@Matt 对新用户肯定有用。别担心
-
这里的问题是闭包问题,不是事件绑定问题
-
@Eric 但问题已通过使用不同的事件绑定范例得到解决。
-
@zod 感谢您的链接。我只是涉足 jQuery,每一个新的信息都非常受欢迎!
标签: javascript jquery for-loop