@historydev
Информационный наркоман

Почему не работает split(',') и includes()?

Добрый день.Пишу фильтр.Столкнулся с проблемой.Мне нужно искать данные из массива в строке.
Вот мой код.

$('.fd').data('genre','action,50,66,ihsjjs');
	$('.fd').data('country','russia');
	$('.fd').data('status','all');
	
	var gnr = $('.fd').data('genre').split(',');
	var ctr = $('.fd').data('country');
	var sts = $('.fd').data('status');
	
	var data=[gnr,ctr,sts];	
	
	$('.find').click(function() {
		
		alert(data[0].includes('action'));	
	
		if(data[0] == 'action')	{
			$('.n_name').css('display','none');
			$('.fd').data('genre','action').css('display','block');
		}	
		
		if(data[1] == 'russia')	{
			$('.n_name').css('display','none');
			$('.fd').data('genre','russia').css('display','block');
		}	
		
		if(data[2] == 'all')	{
			$('.n_name').css('display','none');
			$('.fd').data('genre','all').css('display','block');
		}	
		
	});
  • Вопрос задан
  • 133 просмотра
Решения вопроса 1
...
var gnr = $('.fd').data('genre').split(','); // Array [action, 50, 66, ...]
  var ctr = $('.fd').data('country'); // String
  var sts = $('.fd').data('status'); // String
...
var data=[gnr,ctr,sts]; // Array [Array(3), str, str];
...
alert(data[0].includes('action')); // Must works

if(data[0] == 'action')	{ // Oops Looks like not working


data[0] - Это массив Array['action',55,66] и он не может быть равен 'action'
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Dasslier
FrontEnd Developer
1. Вы ставите тег JavaScript, но выкладываете пример в jQuery.
2. Если в коде ошибка - выкладывайте код ошибки
3. Возможно, что в jQuery не работает метод includes, т.к. это ES6
4. Split не работает потому что он разбивает массив, а у вас HTML-коллекция

Скорее всего в jQuery есть аналогичные методы для решения этих задач. Для применения метода split попробуйте позаимствовать метод массива. Гуглите "заимствование метода массива" в учебнике learn.javascript это есть
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы