用jQuery替换ID中的特殊字符

问题描述:

我有e。 G。此代码:用jQuery替换ID中的特殊字符

<article role="tabpanel" class="tab-pane" id="2.asdasdasdda"> 

并且需要删除/替换“。”。在ID中。

我试着用:

$('.tab-pane').replace('.','LEAVE'); 

但没有任何反应。我在这里做错了什么?

+0

使用'$( '标签窗格 ')。ATTR( “ID”)。REPLACE(' ''')',而不是 – Mohammad

+0

一个'.'是有效的字符在'id'中 - 至少在HTML5中。如果需要,您最好直接从源代码中删除它们。如果这是你的担心,你可以很容易地逃避jQuery选择器中的字符 –

您需要重新分配ID属性的值。

$('.tab-pane').attr('id', function(_, value) { 
 
    return value.replace('.', 'LEAVE'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<article role="tabpanel" class="tab-pane" id="2.asdasdasdda">aaa</article>

试试这个(当然你可以改变 “离开” 你想要什么):

console.log($(".tab-pane").attr("id")); 
 
$(".tab-pane").attr("id",$('.tab-pane').attr("id").replace('.','LEAVE')); 
 
console.log($(".tab-pane").attr("id"));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<article role="tabpanel" class="tab-pane" id="2.asdasdasdda">

你可以用这种方式:

$('.tab-pane').attr('id', function(){ 
    var id = this.id.replace('.','LEAVE'); 
    return id; 
}); 

但没有任何反应。

当然!你的代码在你试图替换元素内容的.时不起作用。
因为您想要更改它的属性id。因此,.attr()方法可以作为第二个参数与功能一起使用。