【问题标题】:jQuery change div ID from x to yjQuery 将 div ID 从 x 更改为 y
【发布时间】:2013-09-05 08:07:41
【问题描述】:

使用 jQuery 我想更改页面中元素的 ID 之一,一个 div,并给它一个新的。我不能使用类,必须是 ID。这将是 IF 语句的一部分,例如:(伪:)

如果 x = 大于 1,则将 x 的 id 更改为 y 别的 什么都不做

到目前为止我有:

$('#carriage-promo').attr('id','#carriage-promo-2');

但是,这似乎不起作用。有什么建议吗?

我从未使用过 ID,总是使用类,并且我使用过 addClass 和 removeClass,这在过去一直对我有用!

【问题讨论】:

  • 将#carriage-promo-2 改为carriage-promo-2(removed #) 并尝试
  • 现在一切正常 - 感谢大家的精彩回答。 :-)

标签: jquery if-statement


【解决方案1】:
$('#carriage-promo').attr('id','#carriage-promo-2');

不需要#。所以删除它

$('#carriage-promo').attr('id','carriage-promo-2');

或者你可以使用.prop()

$('#carriage-promo').prop('id','carriage-promo-2');

查看jsperf中的执行测试用例

这是一个示例Fiddle

【讨论】:

【解决方案2】:

试试

$('#carriage-promo').attr('id','carriage-promo-2');

【讨论】:

  • 你的回答与上面发布的有什么不同吗?
  • 哦 :) 不错,但我不是那个意思。我只是想知道您为什么要写与已经给出的相同的答案。
【解决方案3】:

只需应用您要更新的字符串。

$('#carriage-promo').attr('id','carriage-promo-2');

为什么是因为'#'是选择元素,特别是Id

ID 是 DOM 特定的,# 是 Jquery 特定的。

【讨论】:

    【解决方案4】:

    不需要#,直接使用id即可:

    $('#carriage-promo').attr('id','carriage-promo-2');
    

    最好使用prop()。已经有一些changes with attr() and prop() from Jquery v1.6 onwards

    $('#carriage-promo').prop('id','carriage-promo-2');
    

    prop() 用于属性,attr() 用于属性。

    【讨论】:

    猜你喜欢
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-02
    • 1970-01-01
    • 2020-04-01
    • 1970-01-01
    相关资源
    最近更新 更多