javascript - 对于正则不是很熟
高洛峰
高洛峰 2017-04-11 12:14:41
0
6
269
<!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 的字符串。

いいねを押す +0
黄舟

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

re = /active$/
いいねを押す +0
左手右手慢动作

哎呀点错了,罪过

いいねを押す +0
阿神

/^active$/ 只匹配active

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

いいねを押す +0
迷茫

/active\b/

いいねを押す +0
小葫芦
re = /active(?!d)/

正则前瞻,active后面不跟d
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!