【问题标题】:jQuery work remove id but not an elementjQuery 工作删除 id 但不是元素
【发布时间】:2012-11-13 08:44:04
【问题描述】:

我有一堆跨度,我可以点击每个跨度,例如,这个元素将带有 id="active"。但是如何从前一个元素中删除 id="active" 呢?

$('#active').attr("id",'');  
$(this).attr("id","active");

我用这个,有效吗? 在此代码之后,曾经是活动元素但现在不活动的元素具有 id 但看起来像

<span class="bunch_of_spans" id> // not active anymore (but can be active if i pick it)
<span class="bunch_of_spans" id="active"> // active now
<span class="bunch_of_spans"> // never was active

这是否有效并且可能有从不活动的元素中删除 id 的方法?谢谢

【问题讨论】:

  • 我只是使用一个类并做$('.active').removeClass('active');
  • 更好的方法是像 Blender 所说的那样添加和删除类。使用$('#some_id').addClass('active'); 添加类,使用$('#some_id').removeClass('active'); 删除类。
  • 注意,空的id属性无效。我会使用@Blender 的方法并使用一个类。
  • 谢谢,我不考虑上课,认为这将是一个很好的解决方案。谢谢

标签: jquery css attr


【解决方案1】:

使用removeAttr

$('#active').removeAttr("id");  

工作示例:
http://jsfiddle.net/nWtYc/

虽然这会起作用,但我建议您使用其他一些非唯一标识符来识别活动元素。类对此很有用。

【讨论】:

    【解决方案2】:

    要回答您的具体问题,请使用:

    $('#active').removeAttr("id");
    

    但从语义上讲,id 永远不会改变,所以我建议您改用类,例如:

    <span class="bunch_of_spans active">
    

    然后你像这样添加/删除类:

    $('#active').addClass("active");
    $('#active').removeClass("active");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-18
      • 2021-07-18
      • 2020-03-12
      • 2023-03-24
      • 2016-04-19
      • 1970-01-01
      • 2018-03-18
      • 1970-01-01
      相关资源
      最近更新 更多