Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从类名中删除单词_Javascript_Jquery - Fatal编程技术网

Javascript 从类名中删除单词

Javascript 从类名中删除单词,javascript,jquery,Javascript,Jquery,我有一个div,classtab-detector-one处于活动状态,该函数: $(".tab-detector").click(function (e) { var classList = $(e.target).attr('class'); classList.replace("tab-detector",""); classList.replace("active",""); alert(classList); }); 我原以为它应该向“一”发出警报,但

我有一个div,class
tab-detector-one处于活动状态,该函数:

$(".tab-detector").click(function (e) {
    var classList = $(e.target).attr('class');
    classList.replace("tab-detector","");
    classList.replace("active","");
    alert(classList);
});
我原以为它应该向“一”发出警报,但我看到的是“一号标签探测器处于活动状态”-
。replace()
没有改变任何东西

我做错了什么?

不会改变/变异初始字符串。您仍然需要将返回值分配回初始字符串

因此,它应该看起来像:

$(".tab-detector").click(function (e) {
  var classList = $(this).attr('class');
  classList = classList.replace('tab-detector', '').replace('active', '');
  alert(classList);
});
或:


如果您的目的是删除这些类,那么实际上应该使用,因为这正是它的设计目的

$(".tab-detector").click(function (e) {
  $(this).removeClass('tab-detector one');
});

哦,我在文档中漏掉了。不,我不想删除这些类。谢谢:)@Somaroton:注意
还有两个可能的问题。请更换(“选项卡检测器”)
:1。即使它是另一个类的一部分,它也会将其删除,例如,
“ttttt ab detectorific”。替换(“tab detector”,”)
“ttttfic”
。2.它只会删除第一个,例如,
“TTTTT AB检测标签检测器”。替换(“标签检测器”,“标签检测器”)
“TTTTIT标签检测器”
#1有点棘手(不能只使用正则表达式和
\b
标记)#2可以通过使用正则表达式和
g
标志轻松处理。如果要替换类,则答案是正确的,我建议使用$(e.target)。removeClass(“yourClass”);
$(".tab-detector").click(function (e) {
  $(this).removeClass('tab-detector one');
});