#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/12. @EdithMacomber @3nigma jQuery преобразует имена атрибутов / тегов в верхнем регистре в имена в нижнем регистре. Используйте
.data("keyvalue")
. Скрипка: jsfiddle.net/F7jDJ/43. ах! 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"));
});
Комментарии:
1. без выделения он работает $(«#list li»).data(«ключевое значение»); с выделением он не работает $(«#list li.highlight»).data(«ключевое значение»);
2. извините, я вас не понял.