我的grid全是数字,怎样在一个grid中判断是否有值小于80?我的思路是遍历每一行的td,查看td的值是否<80.但是好像错了,表里面有值<80的数字却提示没有<80.有些td里面是(<div>85<div>)这种格式,不知道是不是这种原因影响的var hasValue=false;
 $('#Grid tr).each(function () {
        $(this).find('td').text()<80)
               hasValue=true;
     });

解决方案 »

  1.   

    if($(this).find('td').text()*1<80)
      hasValue=true; 
      

  2.   


    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <script type="text/javascript">
    $(function(){
    $("#abv").click(function(){
    $("#grid tr td").each(function(){
    if($(this).find('div').text()<80){
    $(this).css("background-color","green");
    }
    });
    });
    })
    </script>
    <input type="button" id="abv" value="测试用按钮"/>
    <table id="grid" border="1">
    <tr>
    <td><div>50</div></td> 
    <td><div>81</div></td> 
    <td><div>60</div></td> 
    </tr>
    <tr>
    <td><div>83</div></td> 
    <td><div>81</div></td> 
    <td><div>60</div></td> 
    </tr>
    </table>
      

  3.   

    var tds=document.getElementsByTagName('td');
    for(var i=0;i<tds.length;i++){
    var div=tds[i].getElementsByTagName('div')[0].innerHTML;
    if(parseInt(div)<80){
    alert(".....");
    }
    }
    试试
      

  4.   

    有些td里面是(<div>85<div>)这种格式
    那么$(this).find('td').text()取到就的就是'<div>85<div>'显然'<div>85<div>' < 80是不对的.想办法吧<div>去掉,只留下数组吧
      

  5.   


    $(this).find('td')返回的是一个object的集合,即便里面只有一个td,你这样写的话肯定要出错的
    改成$(this).find('td')[0].text()。而且text()返回的值要和int类型的数字进行比较的话,是不是要考虑到类型转化的问题呢?
      

  6.   

    $(this).find('td')返回的是一个object的集合,即便里面只有一个td,你这样写的话肯定要出错的
    改成$(this).find('td')[0].text()。而且text()返回的值要和int类型的数字进行比较的话,是不是要考虑到类型转化的问题呢?
    别误导楼主,这样是错的
      

  7.   

    错没错,自己试过就知道了,.find('td')返回的不是集合?你取一个集合的text()来和80比较?
      

  8.   

    find('td')如果没有div,不用加['td'][0],直接find('td').text()
      

  9.   

    你说的问题和我说的完全不是一个,find("td").text(),你知道你找到的是tr的哪一个td吗?这和div没有关系,find这个方法返回的是找到的td这个object的集合,如果直接text()的话,你取的是这个tr下面的哪一个td的text呢?