我试图提取所有类名以userName_XXX开头的类名
目前我有一个类似这样的代码。 p>
var list = document.querySelectorAll(div [class ^ = userName_]); var classArr = Array.prototype .map.call(list,function(div){ return div.className; });返回的arr保存所有的用户类。我的问题是有些情况下类不遵循确切的情况。
我会遇到像username_XXX这样的课程,它不会选择它,因为它的大小写敏感。任何人都可以帮我在这里或指向正确的方向吗?
编辑:尝试下面这个。现在仍然是运气。 http:// jsperf / case-insensitive-queryselectorall / 2
解决方案试试这个:
var classes = [],els = document.querySelectorAll(div [class * = userName_],div [class * = username _]); for(var i = 0; I< els.length; ++ i){var match = els [i] .className.match(/(?:^ | \s)(userName_\S {3})(?:$ | \s)/ i); if(match)classes.push(match [1]);} console.log(classes);
< div class =userName_123>生成userName_123< / div>< div class =userName_1234>生成nothing< / div>< div class = username_abc>产生username_abc< / div>< div class =foo userName_abc bar>产生userName_abc< / div>
I"m trying to extract all class names where the class names begin with "userName_XXX"
Currently I have a code that goes a bit like this.
var list = document.querySelectorAll("div[class^=userName_]"); var classArr = Array.prototype.map.call(list, function(div) { return div.className; });Where the returned arr holds all user classes. My issue is that there are some cases where the classes do not follow the exact case.
So I'll come across a class like this "username_XXX" and it won't pick that up because its case sensitive. Can anyone help me out here or point me in the right direction?
EDIT: Tried following this. Still now luck. jsperf/case-insensitive-queryselectorall/2
解决方案Try this:
var classes = [], els = document.querySelectorAll("div[class*=userName_], div[class*=username_]"); for(var i=0; i<els.length; ++i) { var match = els[i].className.match(/(?:^|\s)(userName_\S{3})(?:$|\s)/i); if(match) classes.push(match[1]); } console.log(classes);<div class="userName_123">Produces "userName_123"</div> <div class="userName_1234">Produces nothing</div> <div class="username_abc">Produces "username_abc"</div> <div class="foo userName_abc bar">Produces "userName_abc"</div>
更多推荐
如何忽略document.querySelectorAll();区分大小写
发布评论