如何使用jQuery将HTML数据值作为字符串获取?
我的源HTML中有以下内容:
Test
我想获取data属性的值,所以我使用以下内容:
var abc = $(this).data('value');
这样可以正常但是如果有一个前导零。 例如,上面将值“1”放入abc。
有没有办法可以让它不将“01”转换为“1”?
this.dataset.value; // Or old school this.getAttribute('data-value');
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);
您可以使用jQuery的attr()运算符:
var abc = $(this).attr('data-value');
从jQuery data()文档中 ,您似乎必须使用.attr()来阻止自动类型转换:
每次尝试都将字符串转换为JavaScript值(这包括布尔值,数字,对象,数组和null),否则它将保留为字符串。 要将值的属性检索为字符串而不尝试转换它,请使用attr()方法。 当data属性是一个对象(以'{‘开头)或数组(以'[‘开头)时,则使用jQuery.parseJSON来解析字符串; 它必须遵循有效的JSON语法,包括引用的属性名称。 数据属性在第一次访问数据属性时被拉出,然后不再被访问或变异(然后所有数据值都在内部存储在jQuery中)。
因此,不要复制其他答案,而是强调,在不进行类型转换的情况下访问属性的方法是:
var abc = $(this).attr('data-value');
$(this).attr('data-value');
这将返回前导0的字符串值。
你有没有尝试过?:
$(this).attr('data-value');
要么
$(this).attr('data-value').toString();
试试:
this.data('value');
我认为这是获取数据属性值的最佳方法。