我的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;
});
$('#Grid tr).each(function () {
$(this).find('td').text()<80)
hasValue=true;
});
hasValue=true;
<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>
for(var i=0;i<tds.length;i++){
var div=tds[i].getElementsByTagName('div')[0].innerHTML;
if(parseInt(div)<80){
alert(".....");
}
}
试试
那么$(this).find('td').text()取到就的就是'<div>85<div>'显然'<div>85<div>' < 80是不对的.想办法吧<div>去掉,只留下数组吧
$(this).find('td')返回的是一个object的集合,即便里面只有一个td,你这样写的话肯定要出错的
改成$(this).find('td')[0].text()。而且text()返回的值要和int类型的数字进行比较的话,是不是要考虑到类型转化的问题呢?
改成$(this).find('td')[0].text()。而且text()返回的值要和int类型的数字进行比较的话,是不是要考虑到类型转化的问题呢?
别误导楼主,这样是错的