Hiho, функция ищет каждый класс с именем .resultsblock и, если виден, помещает данные в массив.
Проблема в том, что когда первым классом является «display: block», все значения Futures возвращают true и будут помещены в массив, включая «display: none», и если первый класс «display: none», все значения возвращают false ...
<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;
}
}
}
Я сделал собственное решение ->
ДЕМОНСТРАЦИОННЫЙ ЖИВЫЙ https://jsfiddle.net/kardebadas/j3f9scet/3/
id
должно быть уникальным, наличие нескольких элементов с одинаковымid
делает бесполезным поиск (найден только первый) - person Pablo Lozano   schedule 24.11.2016