突出显示表中的变量日期

时间:2010-10-11 23:34:28

标签: javascript

早上好,

我遇到以下代码的问题

<html>
<head>
<title>highlight date</title>
<style>
.row {
background-color: Yellow;
color:blue;
}

</style>
<script type="text/javascript">

</script>
<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script language="javascript">
var currentTime = new Date();
var day = currentTime.getDate();
var month = currentTime.getMonth() + 1;
var year = currentTime.getFullYear();
var review = day + "/" + month + "/" + year;

</script>
<script language="javascript">
$(document).ready(function() {
$('#names td:contains(xxxx)').parent().addClass('row');
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<table id="names">
<tbody>
<tr>
<td>1</td>
<td>review</td>
</tr>
<tr>
<td>2</td>
<td>Satheesh</td>
</tr>
<tr>
<td>3</td>
<td>08/10/2010</td>
</tr>
<tr>
<td>4</td>
<td>11/10/2010</td>
</tr>
<tr>
<td>5</td>
<td>xyz</td>
</tr>
</tbody>
</table>
</div>
</form>
<h4>It was
<script type="text/javascript">document.write(review)</script></h4>
</body>
</html>

我得到它来突出显示一个字符串,但出于某种原因,当我尝试将变量“review”声明为我想要搜索和突出显示时,它似乎找到的只是单词review。有人可以帮我这个吗?它开始做我的头了。

三江源

2 个答案:

答案 0 :(得分:3)

您没有提供足够的信息。

我的通灵调试技巧告诉我你需要把它改成

$('#names td:contains(' + someVariable + ')')

答案 1 :(得分:1)

我猜你在尝试

$('#names td:contains(review)').parent().addClass('row');

你应该连接你的变量:

$('#names td:contains(' + review + ')').parent().addClass('row');

会将'#names td:contains('加入您的变量的值,然后加入')'

编辑:我很可惜。以下是我在评论中提出的其他问题的解决方案。请注意,您应该使parseDate函数更加健壮。

$(document).ready(function() {
    function parseDate(dateString)
    {
        //You should address this function to be more robust
        return new Date(Date.parse(dateString));
    }

    $('#names tr').each(function(index)
    {
        var row = $(this);
        if (parseDate(elem.find("td:eq(1)").text()) < new Date())
            row.addClass('row');
    });
});

这将获取每一行并迭代它们。它获取SECOND(0-index)td的文本值,并将其解析为日期。如果此日期小于今天,则适用该类。

它不会检查数据是否是实际日期,因此您应该以某种方式添加该检查。