как получить пользовательское значение данных из выделенного элемента класса с помощью jquery?

#jquery

#jquery

Вопрос:

как получить пользовательское значение данных из выделенного элемента класса с помощью jquery? это не работает…

$("#list li.highlight").attr("data-keyValue"); <— возможно ли это с другим синтаксисом, чтобы это работало?

 $('#list').append('<li data-keyValue= "'   list_keyValue   '">'    list_dataValue   '</li>');

 .highlight
 {
    background-color: white;
    color: black;
 }
  

Комментарии:

1. какую версию jquery вы используете

Ответ №1:

.data() Для этой цели рекомендуется использовать:

 var keyValue = $("#list li.highlight").data("keyvalue");
  

Если значение может быть преобразовано (числа, JSON, …), keyValue переменная будет содержать преобразованный объект. Если вам не нужна эта функция, придерживайтесь .attr("data-keyvalue") .

Комментарии:

1. можете ли вы, пожалуйста, взглянуть на эту скрипку jsfiddle.net/F7jDJ/2 это не работает, data-keyValue но если его заменить, как data-kv это работает jsfiddle.net/F7jDJ/1

2. @EdithMacomber @3nigma jQuery преобразует имена атрибутов / тегов в верхнем регистре в имена в нижнем регистре. Используйте .data("keyvalue") . Скрипка: jsfiddle.net/F7jDJ/4

3. ах! tnx много для уточнения 1

4. если убрать выделение, оно работает $(«#list li»).data(«keyvalue»); но я надеялся отслеживать элементы списка, которые выделены выделением класса

5. @EdithMacomber К вашей скрипке не был прикреплен highlight класс. Кроме того, я рекомендую использовать $("<li>").text(list_dataValue).attr('data-keyvalue').addClass('highlight').appendTo($('#list')) вместо жесткого кодирования HTML внутри строки jQuery.

Ответ №2:

вы можете использовать data , поскольку jquery преобразует прописные буквы в строчные, вы должны использовать data(keyvalue) любезно предоставленную @Rob W

 var list_keyValue="something";
var list_dataValue="asdasd";
$('#list').append('<li data-keyValue= "'   list_keyValue   '">'    list_dataValue   '</li>');

$("#btn").click(function(){

alert($("li").data("keyvalue"));
});
  

http://jsfiddle.net/F7jDJ/3/

Комментарии:

1. без выделения он работает $(«#list li»).data(«ключевое значение»); с выделением он не работает $(«#list li.highlight»).data(«ключевое значение»);

2. извините, я вас не понял.