【问题标题】:How to get attribut with a class?如何获取类的属性?
【发布时间】:2011-07-19 17:04:29
【问题描述】:

我有一个问题。

我有两个链接。

例子:

<.a href="/one.html" id="1" class="链接" onclick="doSomething(id)">一个

<.a href="/Two.html" id="2" class="链接" onclick="doSomething(id)">两个

我不想使用属性“onclick”来获取属性id。 我想使用$(".link").attr(id) 来获取id 的属性。

所以我的代码是:

$(".link").click(function(){ 警报($(this).attr(id)); })

问题是:我们如何知道哪个链接会被显示? 12 ?为什么?

提前致谢。

【问题讨论】:

  • 如果您点击第一个链接,它会提示“1”。如果您单击第二个链接,它将警告“2”。 $(this) 指定接收操作的元素(在本例中为被点击的元素)

标签: jquery class attributes click selector


【解决方案1】:

您在所需属性的名称周围缺少引号。

$(".link").click(function(){ 
  alert($(this).attr("id")); 
});

实时示例:http://jsfiddle.net/nxQmH/

【讨论】:

    【解决方案2】:

    对于您的 a 链接,您不需要 doSomething(id) 位 - jquery 将使用 click 函数处理此问题:

    所以你有:

    <.a href="#" id="1" class="link">一个/.a>

    <.a href="#" id="2" class="link">两个/.a>

    对于您的 jquery 函数使用:

    $(document).ready(function() {

    $("a.link").click(function(){ alert($(this).attr('id')); })

    });
    

    您缺少 id 属性周围的引号。

    【讨论】:

      【解决方案3】:

      如果你使用$(".link").attr("id"),你会得到jQuery对象返回的第一个。 jQuery 对象将从头开始通过 DOM,因此它将是 1。

      对于点击功能,你应该得到this的ID,就像你使用普通JS的this.id一样。

      请注意,要使用.attr("id"),您需要在“id”两边加上引号。

      另请注意,您已经使用onclick="doSomething(id)" 设置了点击处理程序。如果您想将链接的 ID 传递给 onclick(不需要,因为函数中有 this.id),您可以使用 doSomething(this.id)

      这里有一些test code 给你。

      【讨论】:

        【解决方案4】:

        如果您查看您的代码,this 对象将告诉您您将获得哪个 ID。在 jquery 的 .click() 方法的情况下,this 直接指的是单击的 DOM 对象。因此,如果您执行$(SOME_ID).click(function () { alert($(this).class() }),您将看到 DOM 的类被点击。

        如果这不连贯,也许这将是

        http://remysharp.com/2007/04/12/jquerys-this-demystified/

        【讨论】:

          【解决方案5】:

          特殊变量“this”在单击事件发生时绑定到实际单击的任何元素。因此,您的代码将显示被点击的链接的 ID。

          【讨论】:

            猜你喜欢
            • 2018-03-19
            • 1970-01-01
            • 2018-08-12
            • 1970-01-01
            • 2011-01-02
            • 2010-10-14
            • 2010-10-18
            • 1970-01-01
            相关资源
            最近更新 更多