JQ селекторы через data

378
24 ноября 2016, 09:53

Я хочу сделать выборку

console.log($('[data-id=+name+]'));  

Когда name равно слову "Круг" - JS находит его, а если в фразе будет пробел например "тестовый напиток", то JS дает ошибку:

jquery.js:1468 Uncaught Error: Syntax error, unrecognized expression: [data-id=тестовый напиток]

Подскажите, что делать в этом случае?

Answer 1

Начал тестить Вот этот код работает, он находит див, и с пробелами и без

$("body").append('<div data-attr="Кофе Чай"></div>');
$("[data-attr='Кофе Чай']").data('attr');
//И даже если так
name = 'Кофе Чай';
$("[data-attr='"+name+"']").data('attr');

Попробуй так:

console.log($('[data-id=+name+]')); //Твой код замени на
console.log($("[data-id='"+name+"']")); //Скорее всего дело в кавычках
Answer 2

Используйте .data() для получения значения дата-класса

Пример:

$("input[name=getValue]").on("click", function(){ 
  $("input[type=text]").each(function(){ 
    var val = $(this).data("id"); 
    if(val === "Круг") 
      alert("val = Круг"); 
  }); 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<input type="text" data-id="Круг" value="круг"><br/> 
<input type="text" data-id="Квадрат" value="квадратик"><br/> 
<input type="text" data-id="Трегольник" value="трегольничек"><br/> 
<input type="button" name="getValue" value="Получить все значения data-id" />

READ ALSO
Динамическое добавление элементов в listview (jQuerymobile)

Динамическое добавление элементов в listview (jQuerymobile)

Как можно вытащить из объекта данные и динамически добавлять их в listview.

343
Почему не отображается карта гугл сайте

Почему не отображается карта гугл сайте

Почему не отображается карта гугл сайте http://anastasiya. biz.

310
Modal не хочет идти за содержимым

Modal не хочет идти за содержимым

Пытаюсь получить содержимое для модалки:.

285
Если все input checkbox в классе - checked то элемент сделать cheked

Если все input checkbox в классе - checked то элемент сделать cheked

Есть форма с чекбоксами, и есть отдельный чекбокс - отметить все.

617