javascript - 对于正则不是很熟
高洛峰
高洛峰 2017-04-11 12:14:41
0
6
270
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head>
<style>
#p1{color:red; font-size:30px;}
.active{ background:black;}
</style>
<body>

<p id="p1" class="actived" onClick="highlight(this)">123456789</p>

<script type="text/javascript">
function highlight(e){
        
    var str=e.className;
    var re=/active/;
    if(re.test(str)==true){
        e.className=str;
    }else{
        e.className+=" active";
    }
}
</script>
</body>
</html>

这是一个点击添加class改变样式的函数,当被点击的标签为空时会添加active,而当它已经含有时就不需要继续添加,现在是当它class为actived时也被认为是有active,这个问题该怎么解决?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回覆(6)
洪涛

re = /active(?!d)/
?!n :匹配任何其后没有紧接指定字符串 n 的字符串。

黄舟

你这个元素的class如果写的比较规范的话,那么active后面跟的应该是行尾,你把re改一下,

re = /active$/
左手右手慢动作

哎呀点错了,罪过

阿神

/^active$/ 只匹配active

但是你为什么不适用classList呢?自带has,add,remove,contain方法

迷茫

/active\b/

小葫芦
re = /active(?!d)/

正则前瞻,active后面不跟d
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!