Javascript JQuery值与引用

Javascript JQuery值与引用,javascript,jquery,Javascript,Jquery,我试图逐步增强包含a标记的div元素,以便更新div的内容,并且div的click事件打开a的href(在Javascript修改之前) 我有以下代码: $("div") .click(function(){ window.open($("div a").attr("href")); }) .html("&gt;"); <div>Some text and <a href="link.html">a link</a&

我试图逐步增强包含a标记的div元素,以便更新div的内容,并且div的click事件打开a的href(在Javascript修改之前)

我有以下代码:

$("div")
    .click(function(){
        window.open($("div a").attr("href"));
    })
    .html("&gt;");

<div>Some text and <a href="link.html">a link</a></div>
$(“div”)
。单击(函数(){
window.open($(“div a”).attr(“href”);
})
.html(“”);
一些文本和
问题是,当单击事件发生时,
的内容已经更新,因此href属性不再有效


非常感谢您对我如何编写此文件以记住url的任何帮助。

以下内容可以帮助我:

$("div").each(function () {
    var url = $('a', this).attr('href');
    $(this).click(function () { window.open(url); }).html("&gt;");
});
如果只有一个
div
,则可以跳过
。在替换内容之前,只需将
href
值保存到变量中即可。或使用闭包:

$("div")
    .click((function (url) {
        return function () { window.open(url); };
    })($("div a").attr('href')))
    .html("&gt;");

沿着这些思路应该可以做到这一点:

$("div").each(function () {
    var url = $('a', this).attr('href');
    $(this).click(function () { window.open(url); }).html("&gt;");
});
如果只有一个
div
,则可以跳过
。在替换内容之前,只需将
href
值保存到变量中即可。或使用闭包:

$("div")
    .click((function (url) {
        return function () { window.open(url); };
    })($("div a").attr('href')))
    .html("&gt;");