Javascript / jQuery,创建新的$ collection并将元素推送到$ collection

时间:2016-04-14 00:19:03

标签: javascript jquery

我需要找到一些元素,并在我的代码中的多个位置更改一些属性,唯一的问题是,我需要通过将数据属性拆分为数组来找到这些元素。

示例,我给了一个choice_id,每个.question都有一个带有一堆choice_id的属性,插入如下:

<div class="question" data-expanded-by="2,10,28">
<div class="question" data-expanded-by="2">

说我给了choice_id = 2,我假设我不能为这样的集合写一个选择器

$('div.question[data-expanded-by=...])

所以我写了这个小函数来获取元素并将它们作为jQuery集合返回。唯一的问题是,对返回的值调用$ questions.show()无效,即使集合已填充。

function findQuestionsExpandedByChoice($, $question_list, choice_id) {
    $questions = $([]);
    $.each($question_list.find('div.question[data-expanded-by]'), function() {
        ids = $(this).attr('data-expanded-by').split(',');
        if (isInArray(choice_id, ids)) {
            $questions.push($(this));
        }
    });
    return $questions;
}

function isInArray(value, array) {
    return array.indexOf(value) > -1;
}
  

EDIT   我忘了提到我有能力将数据扩展值保存为我想要的任何东西,是否有更聪明的方法来做到这一点而不是将它们保存为分开的数字?在某种程度上,我可以直接查询它们。据我所知,HTML不支持重复的数据属性。

0 个答案:

没有答案