Sam*_*tar 26 javascript jquery
我在源HTML中有以下内容:
<li><a href="#" data-value="01">Test</a></li>
Run Code Online (Sandbox Code Playgroud)
我想获取data属性的值,所以我使用以下内容:
var abc = $(this).data('value');
Run Code Online (Sandbox Code Playgroud)
这样可以正常但是如果有一个前导零.例如,上面将值"1"放入abc.
有没有办法可以让它不将"01"转换为"1"?
Jua*_*des 49
this.dataset.value;
// Or old school
this.getAttribute('data-value');
Run Code Online (Sandbox Code Playgroud)
const a = document.querySelector("a");
console.log('Using getAttribute, old school: ', a.getAttribute('data-value'));
console.log('Using dataset, conforms to data attributes: ', a.dataset.value);
Run Code Online (Sandbox Code Playgroud)
<ul>
<li><a href="#" data-value="01">Test</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
感谢@MaksymMelnyk对数据集的了解
joe*_*t45 16
您可以使用jQuery的attr()运算符:
var abc = $(this).attr('data-value');
Run Code Online (Sandbox Code Playgroud)
Mik*_*ike 13
从jQuery data()文档中,您似乎必须使用.attr()来阻止自动类型转换:
每次尝试都将字符串转换为JavaScript值(这包括布尔值,数字,对象,数组和null),否则它将保留为字符串.要将值的属性检索为字符串而不尝试转换它,请使用attr()方法.当data属性是一个对象(以'{'开头)或数组(以'['开头)时,则使用jQuery.parseJSON来解析字符串; 它必须遵循有效的JSON语法,包括引用的属性名称.数据属性在第一次访问数据属性时被拉出,然后不再被访问或变异(然后所有数据值都在内部存储在jQuery中).
因此,不要复制其他答案,而是强调,在不进行类型转换的情况下访问属性的方法是:
var abc = $(this).attr('data-value');
Run Code Online (Sandbox Code Playgroud)