获取更多元素的数据值

Get data value of more element

本文关键字:数据 元素 获取      更新时间:2023-09-26

我有一个小应用程序,它在选中复选框时创建一个data-pref=true,并在未选中时将其切换为data-pref=false

为了识别,该复选框还有一个 data-column .

这里有一个例子:.js:

$('#dropContent [data-pref=true]')[0].data('column')

.html:

 <div id="dropContent">
        <input data-column="id" data-pref="false" type="checkbox">id
        <br />
        <input data-column="weight" data-pref="true" type="checkbox">weight
    </div>

我需要按点击[0][1][2]的顺序自动获取数据列值,但使用 .data('column').attr.prop是不可能的......

当第一次data-pref成为真时,取值 [0]$('#dropContent [data-pref=true]'([0]当第二个data-pref成为现实时,取值 [1]$('#dropContent [data-pref=true]'([1]等。。。

此功能保存用户选择的列的首选项,当用户选择一列时(这需要data-pref=true[0](,当用户取消选择一列[这需要data-pref=false[0](。当页面调整大小时,我的表格搜索data-pref=true我需要具有 data-column 的值才能将默认列替换为用户单击...

使用 .map().get()

 $('#dropContent :checkbox').change(function (){
      var cols = $('#dropContent [data-pref=true]').map(function (i, el){
          return $(el).data('column');
      }).get();
      console.log(cols);
 });

.map()将迭代具有特定data-pref属性的元素复选框,get()将获取数组中的值。

https://jsfiddle.net/gy3prrgg/2/

如果我

理解正确,您希望针对所有项目,而不仅仅是一个项目。

如果使用选择器$('#dropContent [data-pref=true]')它会返回一个数组,该数组可以循环:

$(function() {
   $('#dropContent [data-pref=true]').each( function(index) {
       var c = $(this).data('column');
       console.log( c );
   });
});

each()中,您可以处理数据,例如将其添加到数组或将其写入元素中。

使用循环

var column =[];
$('#dropContent [data-pref=true]').each(function(i,v){
  column.push($(v).attr('data-column'));
});

https://jsfiddle.net/6usgnker/

$($('#dropContent [data-pref=true]')[nrPriority]).data('column');

问题是:.data只有$('')声明才能发挥作用....