如何使用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'); 

    我认为这是获取数据属性值的最佳方法。