Javascript-форум (https://javascript.ru/forum/)
-   Сайт Javascript.ru (https://javascript.ru/forum/site/)
-   -   фильтр на data-атрибутах (https://javascript.ru/forum/site/66551-filtr-na-data-atributakh.html)

рони 19.01.2017 22:40

zerofx,
не осилил

zerofx 19.01.2017 23:06

может так будет проще ... =))

1) когда в фильтре выставлен только 1н фильтр, а именно количество - как оно на скрине то все правильно срабатывает ... http://c2n.me/3GABbkp - всьо верно!

2) когда же фильтровать сначала по "возрасту", а затем по количеству то он показывает то же http://c2n.me/3GABihc, ето не верно...

а должен показывать элементы, которые отвечают только конкретному возрасту, в нашем случае это "7", а показывает все элементы, этот блок 5 лет не должен отображаться - так как в фильтре стоит 7

надеюсь так будет понятнее :)

рони 19.01.2017 23:14

zerofx,
нет не понятно, x == 7 и x <= 7 , это разные фильтры можно только один вариант, хотите иначе придумывайте алгоритм.

рони 19.01.2017 23:18

Цитата:

Сообщение от zerofx
) когда же фильтровать сначала по "возрасту", а затем по количеству

такого сейчас нет, фильтруется всегда по всем параметрам , только если параметр число, добавлено что пропускать меньше или равно этому числу , если параметр строка пропускать только равно.

zerofx 19.01.2017 23:19

Цитата:

Сообщение от рони (Сообщение 441503)
zerofx,
нет не понятно, x == 7 и x <= 7 , это разные фильтры можно только один вариант, хотите иначе придумывайте алгоритм.


алгоритм правильный ..

а если вынести на отдельный скрипт + data_atr ? именно фильтрацию по количеству элементов?

грубо, но главное чтобы работало ... или вы думаете это не вариант?

рони 19.01.2017 23:20

Цитата:

Сообщение от zerofx
а если вынести на отдельный скрипт + data_atr ? именно фильтрацию по количеству элементов?

грубо, но главное чтобы работало ... или вы думаете это не вариант?

не понимаю

рони 19.01.2017 23:23

zerofx,
для медитации
http://javascript.ru/forum/misc/5638...tml#post374942

zerofx 22.01.2017 02:02

Цитата:

Сообщение от рони (Сообщение 441511)


Все таки здоровый сон многое решает ... :)
Решение банально простое - но так как я себя накрутил я о нем забыл, как всегда все было под носом .. :-/

if - else - решили все!

$(document).ready(function() {
    var b = $("[data-element]");
    console.log(b.length);
    $("select").change(function() {
        var a = $("#age").val(),
            d = $("#size").val(),
            e = $("#parts").val(),
            f = $("#paste").val(),
            c = [a, d, e, f];
        b.hide().filter(function(a, b) {
            return $(b).data("element").every(function(b, a) {
            	if (a == 1) {
            		console.log('--1--');
            		return !c[a] ||(b == +b && +c[a] >= +b) || b == c[a]
            	}
            	 else {
            	 	console.log('--2--');
            	 	return !c[a] || c[a] == b
            	}
            })
        }).show()
    })
});

если значение возраста не равно true - то есть пустое значение (false) выполняется один фильтр, а если равно true - то есть значение возраста не пустое то выполняем другой вильтр

вот и проблеме конец! :dance: :victory:

я благодарю Вас за терпение и помощь =)
Без Вас бы ничего не получилось ...


Если можно спросить о методе "filter" - это метод js а не JQuery я правильно понял?

потому что все что нашел ведет к методу each...

рони 22.01.2017 02:17

zerofx,
https://learn.javascript.ru/array-iteration#filter


Часовой пояс GMT +3, время: 01:36.