У меня здесь что-то вроде нишевого случая.
Итак, я создаю инструмент боковой панели, чтобы использовать его для быстрого создания заметок, и я столкнулся с проблемой, не установив сотни data-attr
s.
В настоящее время у меня есть раскрывающееся меню, в котором отображается контент, содержащий конкретный data-attr
в зависимости от выбора, а остальное скрывает. Проблема, с которой я столкнулся, заключается в том, что я также хочу, чтобы отображались все элементы, которые не содержат никаких data-attr
s.
Есть ли простой способ проверить, нет ли для элемента HTML
определенных data
наборов?
HTML:
<select id="ouSelect">
<option></option>
<option data-ou="aiv">AIV ***</option>
<option data-ou="appstore">Appstore ***</option>
<option data-ou="firetv">Fire TV ***</option>
<option data-ou="kindle">Kindle ***</option>
</select>
<ul id="stuffs">
<li data-kindle="true">Kindle</li>
<li>Generic</li>
<li data-aiv="true">AIV</li>
<li>Generic</li>
<li data-firetv="true">FireTV</li>
<li>Generic</li>
<li data-appstore="true">Appstore</li>
<li>Generic</li>
</ul>
jQuery:
$(function(){
var ou = "";
$('#ouSelect').change(function() {
ou = $('#ouSelect option:selected').data('ou');
ouSelected(ou);
});
function ouSelected(which){
$('li').each(function(){
if($(this).data(which) === undefined){
$(this).hide();
} else {
$(this).show();
}
})
}
});
CodePen: http://codepen.io/anon/pen/GyqoK
Как видите, все общие наборы исчезают при выборе опции. В идеале я бы хотел, чтобы отображались элементы с data-kindle
, а также элементы с без data-attr
.
Есть идеи, как это сделать? Любая помощь приветствуется!