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

时间:2015-04-24 11:46:26

标签: javascript jquery

我的HTML看起来像:

        @Override
        public boolean onLongClick(View arg0) {
            // TODO Auto-generated method stub

        }
    });  

我应该使用什么方法从<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是否有一些本机函数,或者我应该使用data-target循环迭代所有项并获得最大值,不应该吗?

9 个答案:

答案 0 :(得分:4)

单向(不用打扰数组);

    while ($row = mysql_fetch_assoc($qry)) {
            echo  "
            <iframe width=\"160\" height=\"120\"  frameborder=\"0\" allowfullscreen src=".$row['videourl']."></iframe>
        </div>";
}mysql_free_result($qry);

答案 1 :(得分:3)

试试这个:使用PDO with prepared statements.map()函数:

var targets = $("li").map(function() {
    return $(this).data("target");
}).get();
var max = Math.max.apply(Math,targets);

Math

答案 2 :(得分:3)

使用Math.max.apply()方法从数值数组中获取最大值。

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

<强> Fiddle Demo

答案 3 :(得分:1)

这应该有用......

&#13;
&#13;
ko.applyBindings
&#13;
var array = []; 
$('li').each(function() {
    array.push($(this).data('target'));
});
var maxNumber = Math.max.apply(Math, array);

alert(maxNumber);
&#13;
&#13;
&#13;

答案 4 :(得分:0)

var maxVal = 0;
$('[data-target]').each(
    function(){
        if($(this).attr('data-target') > maxVal){
            maxVal = $(this).attr('data-target');
        }
    });

fiddle

答案 5 :(得分:0)

试试这个:

var maxValue = 0;

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

答案 6 :(得分:0)

是的,您可以使用jquery的for each loop获取最大值。对于li的每个值,获取其属性data-target。例如

  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

答案 7 :(得分:0)

Turak Vladyslav

下面的代码可以使用,你可以检查一次

&#13;
&#13;
var Lis = $('#test').find('li');
var dataArray = []
for(var i=0;i<Lis.length;i++){
 dataArray.push($(Lis[i]).attr('data-target'))
  
}
var maxDatatTarget = Math.max.apply(null, dataArray)
alert("max data target value"+maxDatatTarget)
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="test">
<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>
&#13;
&#13;
&#13;

答案 8 :(得分: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;
}