【问题标题】:Check if elements has class which is given in a list/array检查元素是否具有列表/数组中给出的类
【发布时间】:2014-10-31 13:05:39
【问题描述】:

我需要将.disabled 类添加到列表的特定元素中。 这些元素可以在数组或类似的东西中找到 - 不知道为此推荐什么。

HTML:

<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');
});

【问题讨论】:

标签: javascript jquery html


【解决方案1】:

您可以手动或使用Array.prototype.map 方法将. 添加到数组的元素中。并加入数组的元素。然后filter方法会根据创建的选择器过滤匹配的元素:

var arr = ['.re-bold', '.re-table'];
$('#anything a').filter(arr.join()).addClass('disabled');

【讨论】:

    【解决方案2】:

    一种方式:

    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>
    

    【讨论】:

      【解决方案3】:

      只需遍历数组,检查每个类:

      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');
              }
          }
      });
      

      演示:http://jsfiddle.net/e6mds7vz/1/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-08
        • 1970-01-01
        • 2022-09-23
        相关资源
        最近更新 更多