【问题标题】:Setting for attribute of a label element with object oriented method使用面向对象方法设置标签元素的属性
【发布时间】:2010-11-16 23:36:01
【问题描述】:

标签有一个“for”属性,使它们指向某个输入字段。我需要使用 JQuery 更改此属性的值,以便可以使用:

$("label").attr("for", "targetName");

但我还需要设置类名,所以我更喜欢使用:

$("label").attr({
    for: "targetName",
    className: "something" 
});

你可能已经注意到了这个问题,因为当然是 javascript 中的一个关键字。有谁知道我该如何解决这个问题?目前我正在使用第一种方法来设置 for 和第二种方法来设置其他几个属性,它可以工作但它不是很漂亮。

任何帮助将不胜感激。

【问题讨论】:

    标签: jquery label for-attribute


    【解决方案1】:

    您是否尝试过使用字符串键:

    $("label").attr({
      'for': "targetName",
      'className': "something"
    });
    

    ?

    【讨论】:

    • 令人难以置信的是,它有时是多么容易。
    【解决方案2】:

    尝试类似:

    $("label").attr("for", "targetName").attr("class", "something")
    

    $("label").attr("for", "targetName").addClass("something")
    

    $("label").attr({ "for": "targetName", className: "something" });
    

    【讨论】:

      【解决方案3】:

      你也可以用 htmlFor 代替 for:

      $("label").attr({
          htmlFor: "targetName",
          className: "something" 
      });
      

      【讨论】:

      • 以前从未听说过。是标准的吗?还有其他类似的吗?
      • 这正是我一直在寻找的,我更喜欢使用 .attr({ key: value}) 方法,因为我在所有代码中都使用它,但 for 是个问题。现在它再次与我的其余代码一致,谢谢!
      • 虽然它确实出现在 w3.org 上的链接中,但这对我在 Chrome(版本 29.0.1547.76 m)中不起作用。然而,cletus 做到了。
      【解决方案4】:

      这应该可行,

      $("label").attr("for","targetName").attr("class","something");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-16
        • 2013-10-13
        • 2013-01-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-18
        相关资源
        最近更新 更多