我正在尝试选择非空表格单元格的前一个表格单元格。
我有以下代码。
这个工作(突出显示所有空单元格)
$("td.brand:empty").css('background-color', 'red');
此工作(突出显示所有非空单元格)
$("td.brand:not(:empty)").css('background-color', 'green');
这不起作用(突出显示非空单元格的前一个单元格)
$("td.brand:not(:empty)").prev("td.brand").css('background-color', 'yellow');
感谢所有帮助。
由于
答案 0 :(得分:0)
确保在最后一行之前你的JS中没有错误,因为它有效。
您的代码是正确的,您可以在此处查看:JS Fiddle
此代码:
$("td.brand:empty").css('background-color', 'red');
$("td.brand:not(:empty)").css('background-color', 'green');
$("td.brand:not(:empty)").prev("td.brand").css('background-color', 'yellow');
适用于此:
<table>
<tr>
<td class="brand">sdfsdf</td>
<td class="brand"></td>
<td class="brand">sdfsdfs</td>
</tr>
<tr>
<td class="brand"></td>
<td class="brand">ssdfsdf</td>
<td class="brand"></td>
</tr>
</table>
答案 1 :(得分:0)
$(document).ready(function(){
$("td:not(:empty)").each(function(){
$(this).prev().css('background-color', 'yellow');
});
});
答案 2 :(得分:0)
在您在评论中提供的示例中,之前没有空行td.brand
的行,所以我猜这可能是您需要的,基于您的示例的编辑。
$("tr:has(td.brand:not(:empty))").prev().find("td.brand").css('background-color', 'yellow');
这将查找具有非空td.brand
的所有行,然后选择上一行,然后选择该行的td.brand
。
这是一个小提琴:http://jsfiddle.net/jRCbd/1/(你小提琴的更新)
答案 3 :(得分:0)
如果您需要从行中抽象td
,您可以将它们分组到一个对象中并使用索引:
var $tds = $('td.brand');
$tds.filter(":not(:empty)").each(function() {
var i = $tds.index(this);
if (i) // prevents wrapping to last
$tds.eq(i-1).addClass('on');
});