我需要在列表的特定元素中添加"禁用"。这些元素可以在一个数组中找到或类似的东西 - 不知道推荐的是什么。
HTLM:
<ul id=anything>
<li><a href="javascript:;" class="re-icon re-deleted"></a> Text</li>
<li><a href="javascript:;" class="re-icon re-bold"></a> Text</li>
<li><a href="javascript:;" class="re-icon re-italic"></a> Text</li>
<li><a href="javascript:;" class="re-icon re-table"></a> Text</li>
</ul>
这应该成为这个:
<ul id=anything>
<li><a href="javascript:;" class="re-icon re-deleted"></a> Text</li>
<li><a href="javascript:;" class="re-icon re-bold disabled"></a> Text</li>
<li><a href="javascript:;" class="re-icon re-italic"></a> Text</li>
<li><a href="javascript:;" class="re-icon re-table disabled"></a> Text</li>
</ul>
JS:
var arr = ['re-bold', 're-table'];
$('#anything a').each(function() {
if ( $(this).hasClass('anything of the array') ) { // Check if this element has a class, which is given in the array
$(this).addClass('disabled');
});
答案 0 :(得分:6)
您可以手动或使用.
方法向数组的元素添加Array.prototype.map
。并加入数组的元素。然后filter
方法将根据创建的选择器过滤匹配的元素:
var arr = ['.re-bold', '.re-table'];
$('#anything a').filter(arr.join()).addClass('disabled');
答案 1 :(得分:1)
一种方式:
var arr = ['re-bold', 're-table'];
$('#anything a').each(function () {
for (var i = 0; i < arr.length; i++) {
if ($(this).hasClass(arr[i])) $(this).addClass('disabled');
}
});
<强> jsFiddle example 强>
产地:
<ul id="anything">
<li><a href="javascript:;" class="re-icon re-deleted"></a> Text</li>
<li><a href="javascript:;" class="re-icon re-bold disabled"></a> Text</li>
<li><a href="javascript:;" class="re-icon re-italic"></a> Text</li>
<li><a href="javascript:;" class="re-icon re-table disabled"></a> Text</li>
</ul>
答案 2 :(得分:0)
只需遍历数组,检查每个类:
var arr = ['re-bold', 're-table'];
$('#anything a').each(function() {
var i = 0,
arrayLength = arr.length;
for(; i < arrayLength; i++){
if ( $(this).hasClass(arr[i]) ) {
$(this).addClass('disabled');
}
}
});