Can';t使用jQuery将值设置为数据属性
出于某种原因,我无法理解,Can';t使用jQuery将值设置为数据属性,jquery,html,Jquery,Html,出于某种原因,我无法理解,$('element').data('data\u attribute\u name','value')语法在此处不起作用: HTML: 第二行起作用(应用黄色边框),第二行不起作用。为什么?第一行工作正常。data()方法将值存储在内存缓存中,这样由于查询DOM的频率较低,因此速度更快(至少在理论上)。它根本不更新DOM 只要您还使用data()的getter来检索值,这就非常有效: var$list=$('.main_菜单__列表'); $list.data('s
$('element').data('data\u attribute\u name','value')代码>语法在此处不起作用:
HTML:
第二行起作用(应用黄色边框),第二行不起作用。为什么?第一行工作正常。data()
方法将值存储在内存缓存中,这样由于查询DOM的频率较低,因此速度更快(至少在理论上)。它根本不更新DOM
只要您还使用data()
的getter来检索值,这就非常有效:
var$list=$('.main_菜单__列表');
$list.data('scheme','dark').css('border','10px实心黄色');
//要检索属性,请执行以下操作:
console.log($list.data('scheme'));//黑色“
使用以下方法:
$('.main_menu__list').attr('data-scheme', 'dark');
与此相反:
$('.main_menu__list').data('scheme', 'dark');
因此data()不会改变DOM。没错,但即使按照另一个答案中的建议使用attr(),也不会改变它!是的。我更新了我的答案,向您展示了通过attr()
更新的DOM-尽管我强烈建议您坚持使用data()
instead,但attr()现在可以工作了。但是试图更改我的“数据方案”属性的值肯定不起作用:(啊,是的,它现在起作用了,缓存问题。谢谢!
$('.main_menu__list').attr('data-scheme', 'dark');
$('.main_menu__list').data('scheme', 'dark');