Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从HTML属性中获取最大值_Javascript_Jquery - Fatal编程技术网

Javascript 如何从HTML属性中获取最大值

Javascript 如何从HTML属性中获取最大值,javascript,jquery,Javascript,Jquery,我的HTML看起来像: <ul> <li data-target="12">1</li> <li data-target="4">2</li> <li data-target="9">3</li> <li data-target="15">4</li> <li data-target="23">5</li> <li data-targe

我的HTML看起来像:

<ul>
  <li data-target="12">1</li>
  <li data-target="4">2</li>
  <li data-target="9">3</li>
  <li data-target="15">4</li>
  <li data-target="23">5</li>
  <li data-target="32">6</li>
  <li data-target="7">7</li>
  <li data-target="10">8</li>
  <li data-target="5">9</li>
  <li data-target="2">10</li>
</ul>
我应该使用什么方法从数据目标属性中获取最大值?vanilla JavaScript或jQuery是否为此提供了一些本机函数,或者我应该只使用for循环遍历所有项并获得最大值,不是吗?

尝试以下方法:与函数一起使用:

var targets = $("li").map(function() {
    return $(this).data("target");
}).get();
var max = Math.max.apply(Math,targets);
使用方法从数值数组中获取最大值

var arr = $('li[data-target]').map(function(){
    return $(this).data('target')
});
console.log(Math.max.apply(Math,arr));
这应该有用

var数组=[]; $'li'。每个函数{ array.push$this.data'target'; }; var maxNumber=Math.max.applyMath,数组; alertmaxNumber; 1. 2. 3. 4. 5. 6. 7. 8. 9 10 试试这个:

var maxValue = 0;

$("li").each(function(index,val){
  var value = $(this).attr('data-target');   
    if(value > maxValue) maxValue= value;
}); 

一种方式,无需使用阵列

var max = 0;
$("li[data-target]").each(function() {
    max = Math.max(max, parseInt($(this).data("target"), 10));
});

alert(max);

是的,您可以为jquery的每个循环使用最大值。对于li的每个值,获取其属性数据目标。e、 g

图拉克·弗拉季斯拉夫

下面的代码将工作,你可以检查它一次

var Lis=$'test'。查找'li'; var dataArray=[]
forvar i=0;如果对你有用,我就试试这个:

function calculateMaxTarget(){

  var attr[] = $('li').attr('data-target');
  var max = 0;
  for (var i=0; i < attr.length; i++) {
    if(attr[i]>max){
      max = attr[i];
    }
  };
  return max;
}

您是否尝试过至少使用for来完成此操作?地图更加优雅:
  var maxVal=0;
 $(this).find('li').each(function(){
            // cache jquery var
            var current = $(this);
            var val=parseInt(current.attr( "data-target" ));
            if(val > maxVal){
               maxVal=val;
            }       
        });
        console.log(maxVal);//Its the max value
function calculateMaxTarget(){

  var attr[] = $('li').attr('data-target');
  var max = 0;
  for (var i=0; i < attr.length; i++) {
    if(attr[i]>max){
      max = attr[i];
    }
  };
  return max;
}