在javascript中访问Global data- *属性

时间:2019-03-15 10:33:04

标签: javascript html html5 dom

我正在尝试为ajax表编写一些过滤器脚本,并在有人单击该元素时尝试打开覆盖图:

char *array[32];
char buffer[32];
....    
while(fgets(buffer, 32, fp)){
    array[i] = buffer;
....

如何通过javascript / jquery访问数据过滤器类型和值?不能通过Google找到任何东西。 我正在寻找这样的东西:

<div class="at-filter" data-filter-val="{some_value}" data-filter-type="{some_type}">
...
</div>

编辑:犯了错误!

2 个答案:

答案 0 :(得分:0)

您使用attr

var type = $(element).attr("data-filter-type");

您也可以使用data

var type = $(element).data("filter-type"); // Read the note below, though

...但是,如果您要做的只是访问这些属性的值,则没有必要或不很合适。与普遍的看法相反,data is not an accessor for data-* attributes。 (不止如此。)

答案 1 :(得分:0)

要获取属性值,请使用jquery attr()或纯JavaScript getAttribute

但是

  

要检索和更改DOM属性,例如表单元素的选中,选定或禁用状态,请使用.prop()方法。

使用普通JavaScript setAttribute

Optional[empty]
console.log($('.me').attr('data-attribute'));
console.log($('.me').attr('data-second-attr'));

$('.me').each(function() {
  console.log(this.getAttribute('data-attribute'));
  console.log(this.getAttribute('data-second-attr'));
  this.setAttribute('data-second-attr', 'foo-bar');
  console.log('after change', this.getAttribute('data-second-attr'));
})

$('.me').prop('data-attribute', 'baz')
console.log('after change', $('.me').prop('data-attribute'));