[英]JQuery Value vs Reference
我试图逐步增强包含标签的div元素,以便更新div的内容,并且div的click事件会打开a的href(在Javascript修改之前)。
我有以下代码:
$("div")
.click(function(){
window.open($("div a").attr("href"));
})
.html(">");
<div>Some text and <a href="link.html">a link</a></div>
问题是,单击事件发生时, <div>
的内容已经更新,因此href属性不再有效。
我将如何编写此URL以便记住URL的任何帮助将不胜感激。
遵循以下原则可以解决问题:
$("div").each(function () {
var url = $('a', this).attr('href');
$(this).click(function () { window.open(url); }).html(">");
});
如果只有一个div
,则可以跳过.each
,只需在替换内容之前将href
值保存到变量中即可。 或使用闭包:
$("div")
.click((function (url) {
return function () { window.open(url); };
})($("div a").attr('href')))
.html(">");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.