0

我有一堆跨度,我可以单击每个跨度,例如,这个元素将带有 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 的方法?谢谢

4

2 回答 2

4

使用removeAttr

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

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

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

于 2012-11-13T08:45:48.157 回答
2

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

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

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

<span class="bunch_of_spans active">

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

$('#active').addClass("active");
$('#active').removeClass("active");
于 2012-11-13T08:46:15.743 回答