[英]What's wrong with this simple javascript code?
我需要從此鏈接http://jsfiddle.net/bQfb6/2/編譯代碼
JavaScript似乎有問題。 文字顏色不變。
我的html文件:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<style type="text/css">
.cell1 {
border:1px solid red;
background:#eee;
padding:10px;
}
</style>
<script type="text/javascript">
$('.cell1').each(function (i, n) {
if ($(n).text() < 5) $(n).css('color', 'green');
});
</script>
</head>
<body>
<table>
<tr>
<td class="cell1">20</td>
<td class="cell1">5</td>
<td class="cell1">1</td>
<td class="cell1">3</td>
<td class="cell1">10</td>
<td class="cell1">15</td>
</tr>
</table>
</body>
</html>
ps對不起,這樣的菜鳥問題,我真的需要您的幫助才能繼續
首先,您需要在已經構建DOM時運行代碼; 就目前情況而言,它是在此之前被調用的,因此.cell1
選擇器找不到任何元素。
其次,代碼本身可以簡化(無需使用.each
,足以為css
設置回調),如下所示:
$(function() {
$('.cell1').css('color', function(_, val) {
return this.textContent < 5 ? 'green' : val;
});
});
您需要將代碼包裝在ready處理程序中:
$(document).ready(function(){
// your code here
});
而且,您的操作方式有誤,請執行以下操作:
$(document).ready(function(){
$('.cell1').each(function (i, n) {
if (+($(n).text())< 5){ // + is used to convert into number
$(this).css('color', 'red');
}
});
});
您必須等到所有DOM結構准備就緒,然后再應用您的jquery腳本。 您可以將代碼包裝在$(document).ready(function(){});
或$(function(){});
$(function(){
$('.cell1').each(function(i, n) {
if($(n).text() < 5) $(n).css('color', 'green');
});
});
另外一項更改,您必須使用parseFloat進行數值比較
if(parseFloat($(n).text()) < 5)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.