JQuery-$(this.attr(';name';)

JQuery-$(this.attr(';name';),jquery,Jquery,我有一个名称属性分配给超链接。 当我使用jQuerylink\u name执行以下操作时,不会返回任何内容。 我做错什么了吗 $("body").delegate("a", "click", function (event) { var link_name = $(this).attr('name'); alert(link_name); 我会使用这个(使用最新的jQuery): 报价操作: 我做错什么了吗 正如其他人所指出的,如果添加缺少的结束括号,代码应该可以工作}) 您

我有一个
名称
属性分配给超链接。
当我使用jQuery
link\u name执行以下操作时,不会返回任何内容。
我做错什么了吗

$("body").delegate("a", "click", function (event) {

    var link_name = $(this).attr('name');
    alert(link_name);
我会使用这个(使用最新的jQuery):


报价操作:

我做错什么了吗

正如其他人所指出的,如果添加缺少的结束括号,代码应该可以工作<代码>})

您也没有说明jQuery的哪个版本,但是,使用最新版本的1.7,您应该使用1,而不是
delegate()
,而不是
attr()

  • 从jQuery 1.7开始,.delegate()已被.on()方法取代

  • 在这种情况下,检查您实际得到的信息是很有用的:将
    console.log(this)
    放在处理程序中(与
    alert
    的思想相同,但要友好得多)。请确保您使用的浏览器使您能够轻松访问开发人员控制台。由于您的代码在此处似乎运行良好,因此您一定还有其他未披露的内容:。您是否正在等待加载文档,然后再运行此代码?您的代码有点奇怪—通常锚定标记具有
    href
    属性(可单击)或
    名称
    属性(不可单击),但不能同时具有这两个属性。也许您应该改为设置
    var link\u name=$(this).attr('href')
    ?您是否取消了关闭
    })来自上面的代码,我在这里的JSFIDLE中有:?你的错误控制台显示错误了吗?来吧,内特。你发布一个问题,得到一堆问题作为回报,而你却不在身边澄清事情?对于任何人来说,这都不是一个有效的方法。当你问一个问题时,你应该在接下来的30-60分钟内检查几次,看看情况如何,你的问题是否清楚或有问题。你不是一个新手,所以你应该知道这一点。不过这有点不相关,因为提供的代码实际上是有效的。对note回答问题投反对票。OP询问了.delegate()。@fritzfromlondon,即使它目前正在为您工作,我们也不知道OP在这里还做了什么来打破它。由于这两种方法都已更新,OP应该注意。@Sparky672这不是答案OP没有说任何关于使用jQuery 1.7+的内容,因此您没有理由“知道”不再推荐
    .delegate()
    ,即使不推荐,它仍然可以在1.7+中工作,并且会持续很长时间,因此这与他们的代码不工作的原因无关(如我在对他们的问题的评论中发布的JSFIDLE所示)。事实上,在jQuery 1.7之前的jQuery版本中,
    .delegate()
    特别推荐优于
    .live()
    。事实是-更改为
    .on()
    .prop()
    与解决问题无关。-1否决投票,因为它没有解释OP的代码不起作用的原因。有这么多代码(包括缺少结尾括号等),根本不清楚错误是什么。通过将此代码放在他所在的位置,他应该能够看到明显的错误。这将使他对这段代码充满信心,并有望让他看到真正的错误。
    $("body").on("click", "a", function (event) {
        var link_name = $(this).attr('name');
        alert(link_name);
    });
    
    $("body").on("click", "a", function (event) {
        var link_name = $(this).prop('name');
        alert(link_name);
    });