ges*_*nha -3 javascript jquery
我有以下几个要素:
<div class="one two three four five six seven eight"></div>
<div class="one two three four five six seven eight ten"></div>
<div class="one two three four five six seven eight"></div>
<div class="one two three four five six seven eight"></div>
<div class="one two three four five six seven eight eleven"></div>
<div class="one two three four five six seven eight nine"></div>
Run Code Online (Sandbox Code Playgroud)
以下JS:
var obj = ['nine', 'ten', 'eleven'];
Run Code Online (Sandbox Code Playgroud)
如何检查这些元素中的任何一个是否具有数组中的某个类?
不需要遍历每个元素和每个类来检查它是否存在于元素上.
您可以使用regex
如下:
var arr = ['nine', 'ten', 'eleven'];
var classes = '\\b(' + arr.join('|') + ')\\b',
regex = new RegExp(classes, 'i');
$('div').each(function() {
var elClasses = ' ' + $(this).attr('class').replace(/\s+/, ' ') + ' ';
if (regex.test(elClasses)) {
$(this).addClass('valid');
}
})
Run Code Online (Sandbox Code Playgroud)
div {
color: red;
}
.valid {
color: green;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<div class="one two three four five six seven eight">Invalid</div>
<div class="one two three four five six seven eight ten">Valid Ten</div>
<div class="one two three four five six seven eight">Invalid</div>
<div class="one two three four five six seven eight">Invalid</div>
<div class="one two three four five six seven eight eleven">Valid 11</div>
<div class="one two three four five six seven eight nine">Valid 9</div>
Run Code Online (Sandbox Code Playgroud)
REGEX EXPLANATION
\b
:将匹配单词边界|
:在正则表达式中用作ORarr.join('|')
:将使用|
连接加入数组的所有元素()
:捕获组.在这种情况下用于匹配其中一个类所以,regex
在上面的情况下将是
/\b(nine|ten|eleven)\b/
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1940 次 |
最近记录: |