Jquery数据属性多值

jquery data attribute multiple values

本文关键字:数据属性 Jquery      更新时间:2023-09-26

我有一个问题,在一个数据标记中使用多个值,并基于它的id应用一个过滤器。因为它在data标签中显示了多个id,所以它不会同时显示两个id。

示例:http://jsfiddle.net/rWhVN/

<script type="text/javascript">
        $(function () {
            $('#content').removeClass('nojs');
            $('.row').not('#q1').hide();
            $('select').on('change', function () {
                var question = $(this).parent().parent().attr('id');
                var answerID = $(this).children('option:selected').attr('id');
                var loadQuestion = $(this).children('option:selected').data('load');
                $('#' + question).addClass('answered');
                $('.row').not('.answered').hide();
                $('#' + loadQuestion).fadeIn();
                console.log(loadQuestion);
            });
        });
    </script>
<option id="q1a1" data-load="q2, q8">Answer 1</option>

问题一、答案一应该显示问题二和问题八。

不知道你是怎么分出来的,所以任何帮助都很感谢。

$('#' + loadQuestion)将是$('#q2, q8'), #q2#q8将不是选择器

你可以先做data-load="#q2, #q8",然后再做$(loadQuestion)

参见演示

如果你不能改变data-load属性,那么你可以这样做:

$($.map(loadQuestion.split(/ *, */), function(el) {return '#'+el;}).join(',')).fadeIn();