Javascript 如何更改<;部门>;当它有一个奇怪的类名时标记类名?

Javascript 如何更改<;部门>;当它有一个奇怪的类名时标记类名?,javascript,jquery,html,Javascript,Jquery,Html,这是我正在使用的原始div标签: <div class="stadvancedmenu_sub advanced_style_wide col-md-0" style="display: none; overflow: visible;"> 请记住,我不能只是进去手动更改措辞或任何东西,因为我没有权限编辑文档,但我可以向文档中添加代码以进行更改。这就是为什么我要问应该使用什么方法将类的名称更改为更简单的名称 我还尝试了javascript,并尝试使用以下函数调用它: 函数替换()

这是我正在使用的原始div标签:

<div class="stadvancedmenu_sub advanced_style_wide col-md-0" style="display: none; overflow: visible;">
请记住,我不能只是进去手动更改措辞或任何东西,因为我没有权限编辑文档,但我可以向文档中添加代码以进行更改。这就是为什么我要问应该使用什么方法将类的名称更改为更简单的名称

我还尝试了javascript,并尝试使用以下函数调用它:

函数替换(){
var newClass=document.getElementsByClassName('.statAdvancedMenu\u sub.advanced\u style\u wide.col-md-0')[0];
setAttribute('class','newClassName')
}

replaceClass()由于选择器中的所有类都代表相同的元素,请删除类之间的空格,并在类名称前面加上“
(点)”。将选择器更改为:

$('.stadvancedmenu_sub.advanced_style_wide.col-md-0')
但如果要使用
getElementsByClassName()
,则不应指定
(点)并在选择器中指定类名之间的空格:

document.getElementsByClassName('stadvancedmenu_sub advanced_style_wide col-md-0')
函数替换类(){
var newClass=document.getElementsByClassName('statadvancedMenu\u sub-advanced\u style\u-wide col-md-0')[0];
setAttribute('class','newClassName');
newClass.style.display='block';
newClass.style.color='red';
}
replaceClass()

Test
由于选择器中的所有类都表示相同的元素,请删除类之间的空格,并在类名称前面加上
(点)。将选择器更改为:

$('.stadvancedmenu_sub.advanced_style_wide.col-md-0')
但如果要使用
getElementsByClassName()
,则不应指定
(点)并在选择器中指定类名之间的空格:

document.getElementsByClassName('stadvancedmenu_sub advanced_style_wide col-md-0')
函数替换类(){
var newClass=document.getElementsByClassName('statadvancedMenu\u sub-advanced\u style\u-wide col-md-0')[0];
setAttribute('class','newClassName');
newClass.style.display='block';
newClass.style.color='red';
}
replaceClass()
Test
没有类名“有空格”,如果有空格,则它们是独立的类

初始选择器错误,因为它没有按类正确地以元素为目标,请尝试以下操作:

$('.stadvancedmenu_sub.advanced_style_wide.col-md-0')
当您想要针对所有具有“多个特定类”的元素时,请在类名上加一个点“.”。

没有类名“有空格”,如果有空格,则它们是独立的类

初始选择器错误,因为它没有按类正确地以元素为目标,请尝试以下操作:

$('.stadvancedmenu_sub.advanced_style_wide.col-md-0')
当您想针对所有具有“多个特定类”的元素时,请在类名上加一个点“.”。

试试这段代码

<div id="mydiv" class="stadvancedmenu_sub advanced_style_wide col-md-0" style="display: none; overflow: visible;"> 

$("#mydiv").attr("class","new_class_name");

$(“#mydiv”).attr(“类”、“新类名称”);
试试这段代码

<div id="mydiv" class="stadvancedmenu_sub advanced_style_wide col-md-0" style="display: none; overflow: visible;"> 

$("#mydiv").attr("class","new_class_name");

$(“#mydiv”).attr(“类”、“新类名称”);

您的jQuery选择器无法工作,因为您对多个类使用了错误的语法。元素的每个类前面都需要有类选择器
,并且中间不能有空格,因为空格表示它是某个被继承元素之后的下一个选择器

所以

将是:

$('.stadvancedmenu_sub.advanced_style_wide.col-md-0')
至于您的getElementsByCassName(),它不起作用,因为与使用CSS选择器的jQuery或本机
querySelector()
方法不同,gEBCN使用的是类中使用的确切名称

所以

会是

getElementsByClassName('stadvancedmenu_sub advanced_style_wide col-md-0')
或者只是众多课程中的一门

getElementsByClassName('stadvancedmenu_sub')

您还必须确保在正确的时间运行代码。如果您尝试在元素还不存在时运行jQuery调用,那么将不会发生任何事情,甚至不会出现错误。如果使用本机getElementsByCassName进行尝试,那么在访问未定义的值时应该会出现错误,因为您对多个类使用了错误的语法,因此jQuery选择器无法工作。元素的每个类前面都需要有类选择器
,并且中间不能有空格,因为空格表示它是某个被继承元素之后的下一个选择器

所以

将是:

$('.stadvancedmenu_sub.advanced_style_wide.col-md-0')
至于您的getElementsByCassName(),它不起作用,因为与使用CSS选择器的jQuery或本机
querySelector()
方法不同,gEBCN使用的是类中使用的确切名称

所以

会是

getElementsByClassName('stadvancedmenu_sub advanced_style_wide col-md-0')
或者只是众多课程中的一门

getElementsByClassName('stadvancedmenu_sub')

您还必须确保在正确的时间运行代码。如果您尝试在元素还不存在时运行jQuery调用,那么将不会发生任何事情,甚至不会出现错误。如果您尝试使用本机GetElementsByCassName,您应该会在访问未定义值时遇到错误

更改了名称并添加了句点,但在我选中时,它没有更改代码中的类名。@VictorM。,请查看我的更新答案……我需要使用ajax链接吗?尝试了您创建的新函数,但它不起作用。@VictorM.,不,您不需要链接……更改了名称并添加了句点,但在我选中时,它没有更改代码中的类名。@VictorM。,请查看我的最新答案……我需要使用ajax链接吗?我尝试了你创建的新功能,但它不起作用。@VictorM.,不,你不需要链接……正如我前面提到的,我无法进去添加ID或编辑现有代码,因为我没有访问权限。因此,这在我的情况下不起作用。正如我前面提到的,我不能进去添加ID或编辑现有代码本身,因为我没有访问权限。因此,这在我的情况下不起作用。应用了这个,它就不起作用了。将您的remove类更改为这个removeClass('stadvancedmenu_sub advanced_style_wide col-md-0')。您不需要将它们集中在那里,您需要用空格将它们删除我尝试过的所有类$('.stadvancedmenu_sub advanced_style_col-md-0')。addClass('ddMenu')。removeClass('stadvancedmenu\u sub-advanced\u style\u-wide col-md-0');但它没有更改任何内容。应用此选项后,它不起作用。将您的移除类更改为此remo