我有一个表格,其中我有数字框,其中很少一些在页面加载时已经为0。
我想更改页面加载时值为0的那些框的背景颜色。下面是我正在使用的代码,但它不适合我,请建议。
if($('tr td').children('input').val()==0)
$(this).css('background-color','#cccccc');
答案 0 :(得分:0)
这里你去(使用jquery版本1.11):
$('table tr td').each(function() {
if ($(this).text()==='0'){
$(this).css('background-color', 'black');}
});
工作示例:
答案 1 :(得分:0)
尝试以下代码
$('tr td').each(function() {
if ($(this).children("input").val() ==='0'){
$(this).css('background-color', 'black');}
});
});
演示: - http://jsfiddle.net/DXQ5j/1/
您需要将值设置如下: -
for(var i=1;i<=6;i++)
{
$("#"+i).val(0);
}
而不是
for(var i=1;i<=6;i++)
{
$("#"+i).val()=0;
}
答案 2 :(得分:0)
这是你的解决方案,实际上你错误地使用了赋值运算符val: 你所做的html部分也令人毛骨悚然:P。
$(document).ready(function () {
for (var i = 1; i <= 6; i++) {
$("#" + i).val(0);
}
// if ($('tr td').text()==='0'){ $(this).css('background-color', //'#cccccc');}
$('input').each(function() {
if ($(this).val()==='0'){
$(this).css('background-color', 'black');}
});
});
小提琴:
答案 3 :(得分:0)
鉴于更正后的HTML,我建议采用以下方法:
// select all input elements, filter that collection:
$('input').filter(function(){
// keep only those input elements whose value is equal to 0:
return 0 === parseInt(this.value,10);
// select the closest ancestor 'td' element:
}).closest('td')
// set the background-color of those 'td' elements:
.css('background-color','black');
虽然使用addClass()
稍微好一些,但颜色可以更容易地改变,并且不变:
$('input').filter(function(){
return 0 === parseInt(this.value,10);
}).closest('td').addClass('zeroValueInput');
参考文献:
答案 4 :(得分:0)
$(document).ready(function(){
for(var i=1;i<=6;i++)
{
$(&#34;#&#34 + I).VAL()= 0;
//错误:使用你在下面的if条件中使用的赋值,即$(&#34;#&#34; + i).val(0);
if($(&#39; tr td&#39;)。children(&#39; input&#39;)。val(0))
//错误:&#34;这是分配,如果成功则返回&#34;。不比较。
$(本)的CSS(&#39;背景色&#39;&#39;#CCCCCC&#39);
//错误:你怎么能如此确定&#34;这个&#34;将包含所需元素的参考?像使用其他帖子一样使用每个运营商。
});