data질문입니다.
본문
현재 상황입니다.
<div class='lt' data='600 -4 200'>
<a data='600 -4 200'> 메인1 </a>
<a data='300 -4 762'> 서브1-1 </a>
<a data='555 -4 253'> 서브1-2 </a>
<a data='243 -1 600'> 메인2 </a>
<a data='444 -1 111'> 서브2-1 </a>
<a data='222 -3 200'> 메인3 </a>
</div>
이렇게 data값이 총 3개가 들어가있는 상태입니다.
뒤의 메인1 이런것들은 신경안쓰셔도 되고
위의 div의 데이터 3개중 하나라도 같은값이 있으면 출력하라고 할려면 어떻게 해야하나요ㅜ?
만약 어떤글을 작성하고 div data가 600 -4 200 이렇게 설정이 되어있다면
이 3가지를 전부 충족시키는 a태그(메인)가 아닌 각각의 수들을 충족시키는
a태그(메인1, 서브1-1, 서브1-2, 메인2, 메인3) 등이 출력되는 방법이 있을까요 ?? ㅜ
현재 스크립트는
<script>
$(window).load(function(){
var indexs = $('.lt').attr('data'); //wr_id값
//wr_id값 INDEX 찾기
var id_index = 0;
$('.menus li').each(function(i, e){
if(indexs == $(this).find('a:first').attr('data')){
id_index = i;
return false;
}
});
//id_index의 부모 ul을 찾아 slideDown시킴
if(id_index){
$('.menus li ').eq(id_index).map(function () {
if(this.tagName=='LI'){
$(this).show();
$(this).css('background', '#8C8C8C');
}
});
$('.menus li').eq(id_index).parent().map(function () {
if(this.tagName=='UL'){
$(this).css('background', '#3a3c42');
}
});
}
});
이상태로 글작성시 위의 data 3개값이 전부 같은 애들만 출력이 되도록 설정을 해놓은건데
그 후에를 못건드리겠네요 ㅜㅜㅜ
답변 1
var arr = $('.lt').attr('data').split(' ');
$('.lt li').each( function() {
for (var i in arr) {
var patt = new RegExp(arr[i] + ' ', 'g');
if (patt.test($('a', this).attr('data') + ' ')) {
$(this).show();
$(this).css('background', '#8C8C8C');
$(this).parent('ul').css('background', '#3a3c42'); break;
}
}
});