Javascript 在这种特殊情况下,匹配变量的索引
我想检查Javascript 在这种特殊情况下,匹配变量的索引,javascript,html,class,indexof,Javascript,Html,Class,Indexof,我想检查mydiv是否有类,如果没有,则添加varnewClass中的任何内容。我正试图这样做,但不起作用: var newClass="classToBeAdded"; if(document.getElementById("mydiv").className.indexOf(/(?:^| )(newClass)(?:$| )/)==-1){ document.getElementById("mydiv").className+=" "+newClass; } 您可以使用dom元素
mydiv
是否有类,如果没有,则添加varnewClass
中的任何内容。我正试图这样做,但不起作用:
var newClass="classToBeAdded";
if(document.getElementById("mydiv").className.indexOf(/(?:^| )(newClass)(?:$| )/)==-1){
document.getElementById("mydiv").className+=" "+newClass;
}
您可以使用dom元素的javascript属性
document.getElementById("mydiv").classList
它返回指定类名的数组您可以使用dom元素的javascript属性
document.getElementById("mydiv").classList
它返回指定类名的数组使用以下命令:
var newClass = "classToBeAdded";
var d = document.getElementById("mydiv");
var r = new RegExp(" " + newClass + " ");
if (r.test(" " + d.className + " "))
// do something here
或者,类似地:
var d = document.getElementById("mydiv");
if ((" " + d.className + " ").indexOf(" " + newClass + " ") != -1)
// do something here
在className
字符串之前和之后添加空格,这样无论目标类出现在字符串中的什么位置,我们都将匹配它
一些测试
承担以下功能:
function hasClass(str, name) {
return (" " + str + " ").indexOf(" " + name + " ") != -1;
}
测试:
hasClass("target", "target") // true
hasClass("test target test1", "target") // true
hasClass("test1 target", "target") // true
hasClass("target test1", "target") // true
hasClass("test1", "target") // false
使用以下命令:
var newClass = "classToBeAdded";
var d = document.getElementById("mydiv");
var r = new RegExp(" " + newClass + " ");
if (r.test(" " + d.className + " "))
// do something here
或者,类似地:
var d = document.getElementById("mydiv");
if ((" " + d.className + " ").indexOf(" " + newClass + " ") != -1)
// do something here
在className
字符串之前和之后添加空格,这样无论目标类出现在字符串中的什么位置,我们都将匹配它
一些测试
承担以下功能:
function hasClass(str, name) {
return (" " + str + " ").indexOf(" " + name + " ") != -1;
}
测试:
hasClass("target", "target") // true
hasClass("test target test1", "target") // true
hasClass("test1 target", "target") // true
hasClass("target test1", "target") // true
hasClass("test1", "target") // false
您可能应该使用一个库来为您抽象这些问题 经验法则是,你应该专注于你特定领域的问题,而不是重新发明轮子
jQuery是一个很好的候选者您可能应该使用一个库来为您抽象此类问题 经验法则是,你应该专注于你特定领域的问题,而不是重新发明轮子
jQuery是一个很好的候选者它在旧版本的浏览器+1中不起作用我不知道
classList
,但它需要更新的浏览器()。这是真的,但总有办法扩展任何类型的原型来添加属性;)但是你应该使用jQuery或任何类似的工具来让你的生活更轻松它在旧版本的浏览器+1中不起作用我不知道classList
,但它需要更新的浏览器()。这是真的,但总有办法扩展任何类型的原型来添加属性;)但是你应该使用jQuery或任何类似的工具来让你的生活更轻松。你可以查看第一个/最后一个类?@TuxedoKnightChess-是的。试试看。“(^ |)+”+newClass+“($|)+”
会有办法(没有尝试但假设会)@TuxedoKnightChess-添加了一些测试来演示。will“+newClass+”
检查第一个/最后一个类?@TuxedoKnightChess-是的。试试看。“(^ |)+”+newClass+“($|)+”
会有办法(没有尝试,但假设会)@TuxedoKnightChess-添加了一些测试来演示。