如何从元素类中获取数据值?

时间:2016-11-08 11:43:53

标签: javascript jquery html

HTML code:

<input type="file" name="efile" id="efile" data-cat="electronics" style="width:100%" class="alertme">
<input type="file" name="dfile" id="dfile" data-cat="Decoratives" style="width:100%" class="alertme">
<input type="file" name="kfile" id="kfile" data-cat="kitchen" style="width:100%" class="">
<input type="file" name="hdfile" id="hdfile" data-cat="Home" style="width:100%" class="">
<input type="file" name="ffile" id="ffile" style="width:100%" data-cat="Furnitures" class="alertme">

如何在class alertme存在的情况下获取data-cat属性值?并感谢您阅读我的问题。我的英语很弱,所以如果我犯了任何语法或拼写错误,请向我道歉。

5 个答案:

答案 0 :(得分:2)

这是实现此目的的代码:

$(".alertme").each(function(){
    // Here you can fill your array or whatever you want..
    $(this).attr("data-cat"); 
});

答案 1 :(得分:0)

你可以这样尝试

$(document).ready(function(){
  $(".alertme").each(function(){
 var val = $(this).data('cat');
    alert(val);
});
})
<input type="file" name="efile" id="efile" data-cat="electronics" style="width:100%" class="alertme">
<input type="file" name="dfile" id="dfile" data-cat="Decoratives" style="width:100%" class="alertme">
<input type="file" name="kfile" id="kfile" data-cat="kitchen" style="width:100%" class="">
<input type="file" name="hdfile" id="hdfile" data-cat="Home" style="width:100%" class="">
<input type="file" name="ffile" id="ffile" style="width:100%" data-cat="Furnitures" class="alertme">
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>

答案 2 :(得分:0)

使用attr()获取数据属性,循环确实将值推送到数据数组

var data = [];
$(".alertme").change(function() {
  $(".alertme").each(function() {
    data.push($(this).attr("data-cat"));
  });
  console.log(data);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="file" name="efile" id="efile" data-cat="electronics" style="width:100%" class="alertme">
<input type="file" name="dfile" id="dfile" data-cat="Decoratives" style="width:100%" class="alertme">
<input type="file" name="kfile" id="kfile" data-cat="kitchen" style="width:100%" class="">
<input type="file" name="hdfile" id="hdfile" data-cat="Home" style="width:100%" class="">
<input type="file" name="ffile" id="ffile" style="width:100%" data-cat="Furnitures" class="alertme">

答案 3 :(得分:0)

首先,您必须获得该类的所有元素:

var aAlertMe = window.document.getElementsByClassName("alertme");

其次,对于数组中的每个元素,将其数据插入另一个数组:

var aDataValues = [];
for(var i = 0; i < aAlertMe.length; i++){
    aDataValues.push(aAlertMe[i].dataset.cat);
}

并且您将拥有aDataValues中的所有值。

答案 4 :(得分:0)

试试这个:

$("input[type='file']").each(function () {
    if($(this).hasClass("alertme"))
        alert($(this).data("cat"));
});