javascript - 获取页面加载后传递给元素的数据属性

标签 javascript jquery

我对 javascript 和 jquery 比较陌生。 我正在尝试创建和自定义 <input type="file"> 。因此,我将其隐藏在 View 中,并在客户单击另一个 a 时触发。元素。

所以基本上我的输入看起来像这样

<input type="file" style="display:none;" id="myFile">

我的元素是这样的

<a href="#" class="add_image" data-index="0" data-conind="1"><i class="fa fa-picture-o fa-2x" aria-hidden="true"></i> Choose Image</a>

因此,为了实现这一目标并将数据属性传递给我所做的输入:

//open select of image
    $(document).on('click','.add_image',function(e) {
        e.preventDefault();
        var att = $(this).data();
        $.each(att,function(index,val) {
           $('#myFile').attr(index,val); 
        });
        $('#myFile').trigger('click');
    });

这个想法是在客户选择图像后触发 onChange 事件来上传图像。但我需要数据属性。

$(document).on('change','#myFile',function(e) {
        e.preventDefault();
console.log($(this).data());
});

在这种情况下,我得到的属性为 null 或未定义

最佳答案

您需要使用 .data 设置数据属性而不是 .attr

$(document).on('click', '.add_image', function(e) {
  e.preventDefault();
  var att = $(this).data();
  $.each(att, function(index, val) {
    $('#myFile').data(index, val);
  });
  $('#myFile').trigger('click');
});

$(document).on('change', '#myFile', function(e) {
  e.preventDefault();
  console.log($(this).data());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="file" style="display:none;" id="myFile">

<a href="#" class="add_image" data-index="0" data-conind="1"><i class="fa fa-picture-o fa-2x" aria-hidden="true"></i> Choose Image</a>

您可能需要在文件弹出窗口中选择一个文件才能查看 console.log(因为它仅记录更改)

关于javascript - 获取页面加载后传递给元素的数据属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43469604/

相关文章:

javascript - React - 如何实现复选框?

javascript - 从 .env 设置 Angular 6 环境变量

javascript - 删除 body 标签 Angular 应用程序的属性

jquery - 重定向 URL 后如何设置 select 的选定元素?

javascript - 使用 d3.js 附加时如何使用 jquery 查找 div

javascript - 将变量放入 ajax 函数 JQuery

javascript - 如果变量(或元素值)保持不变超过 2 秒,该怎么办?

javascript - pdf生成后如何打开打印对话框?

javascript - 我可以在 iframe 中使用 window.location.replace 吗?

jquery - 通过更改 :before 折叠时将加号更改为减号