我在数据标记中使用多个值时遇到问题,并根据此ID应用过滤器。因为它在数据标记中显示多个ID,所以它不会同时显示两个ID。
的示例<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>
问题一答案应该显示问题二和问题八。
不确定你是如何拆分出来的,所以任何帮助都会受到赞赏。
答案 0 :(得分:1)
$('#' + loadQuestion)
将为$('#q2, q8')
,不会是#q2
和#q8
的副本。
您可以执行data-load="#q2, #q8"
,然后执行$(loadQuestion)
。
的 See the demo 强> 的
如果您无法更改data-load
属性,则可以执行以下操作:
$($.map(loadQuestion.split(/ *, */), function(el) {return '#'+el;}).join(',')).fadeIn();