2016-11-24 8 views
0

Hiho, 함수는 이름이 .resultsblock 인 모든 클래스를 검색하고 표시 가능한 경우 데이터를 배열에 넣습니다.함수는 이름이 .resultsblock 인 모든 클래스를 검색하고 표시되는 경우 배열에 데이터를 입력합니다.

문제는 첫 번째 클래스가 "display : block"이고 모든 선물 값이 true를 반환하고 배열에 ut가되며 문제가 "display : none"이고 첫 번째 값이 "display : none"이면 모든 값이 반환됩니다. 거짓 ...

<div id="measure_print" class="resultblock" data-nid="900" style="display: block;"> 
    <p>blablalblabla</p> 
</div> 
<div id="measure_print" class="resultblock" data-nid="988" style="display: none;"> 
    <p>blablalblabla</p> 
</div> 
<div id="measure_print" class="resultblock" data-nid="999" style="display: none;"> 
    <p>blablalblabla</p> 
</div> 



<button type="button" onClick = "cartAction('addall','')" >Add All</button> 



function cartAction(action,nID) { 
    var nidarr = []; 
    if(action != "") { 
    switch(action) { 
     case "addall": 
     $.each($('.resultblock'), function(index, value) { 
      var temp = parseInt($(value).data('nid')); 
      var query = $('#measure_print'); 


      if ($('.resultblock').css('display') !== 'none') { 
      nidarr.push(temp); 
      console.log(temp); 
      } 
     }); 
     console.log(nidarr); 
     break; 
    } 
    } 
} 

내가 내 자신의 솔루션 제작 - 문이 resultblock 클래스를 가진 모든 div를 다시 선택하면 라이브>

DEMO를 https://jsfiddle.net/kardebadas/j3f9scet/3/

+0

'id' 속성의 값은 고유해야하며, 여러 개의 요소가'id '와 동일해야 검색 할 수 없습니다. (첫 번째 만 찾음) –

답변

0

현재 반복 만이 아니라 .resultblock div를 모두 포착합니다. 나는 또한 jquerys가 좀 더 깨끗한 코드를 위해 ('visible') 권장한다. :)

function cartAction(action,measure_N_ID) { 
    var nidarr = []; 
    if(action != "") { 
    switch(action) { 
     case "addall": 
     $.each($('.resultblock'), function(index, value) { 
      var temp = parseInt($(value).data('nid')); 
      var query = $('#measure_print'); 


      if ($(this).is(':visible')) { 
      nidarr.push(temp); 
      console.log(temp); 
      } 
     }); 
     console.log(nidarr); 
     break; 
    } 
    } 
} 
0
은 지금 당신, 그 이유입니다

항상 사실입니다. 당신이

if ($(value).css('display') !== 'none') { 

if ($('.resultblock').css('display') !== 'none') { 

에서 if 문을 변경하는 경우가 반복 대신 현재이라는 요소의 표시 값을 확인합니다.