【发布时间】:2012-05-21 14:39:43
【问题描述】:
我想动态设置 div 的背景颜色等于直接进行它的表行的背景颜色。以下是我认为我想做的事情:
$(this).next().css('background-color', $(this).css('background-color'));
在此板上寻找答案时,我找到了this thread。这似乎是对他们有用的答案,但我的不起作用。任何建议都欣然接受。
编辑
对于那些要求查看我正在尝试做什么的人,这里是构建我的表格主体的 PHP 代码:
<?php
// For every row past the first (header) row, create a table entry
while ( $row = fgetcsv($handle) ) {
echo "<tr class='c_edd_row'>";
// Build each cell
$num = count($row);
for ($c=0; $c < $num; $c++) {
// Do not echo entries 23 through 27 (unused cells)
if ( $c < 23 || $c > 27 ) {
echo "<td>".$row[$c]."</td>";
// save the last entry for the hidden div
$validation_notes = $row[$c];
}
}
echo "</tr>";
echo "<tr class='c_sub_row'>
<td colspan='42' class='c_notes_div'>
<div class='c_notes_div'>".$validation_notes."</div>
</td></tr>";
}
?>
响应者是正确的,我没有很好地说明我的问题。我所说的 div 实际上包含在 TRs 中。我将其用作最后一行条目中包含数据的每一行的下拉列表。
当我单击一行时,具有 c_sub_row 类的下一行从 display:none 更改为 display:table-row,效果很好,但是当发生这种情况时,我需要它来获取前一行的颜色。
最终更新 - 非常感谢 Jonathan Sampson
这是最终的解决方案,基于下面的 cmets:
$('.c_edd_row').on('click', function(event) {
var bg = $(this).css("background-color");
$(this).next().css("background-color", bg); // colors the next row
$(this).next().find('div').css("background-color", bg); // colors the div
});
【问题讨论】:
-
您能否提供一个简单的 HTML 结构来描述您想要的内容?你的描述不是很清楚。
-
通常一个 div 元素并不意味着在一个
元素旁边,这就是为什么这对你不起作用,因为它在当前元素之后读取元素的 backgroundcolor 属性。正如 Lior 所说,我们需要查看 html 来为您优化代码 您的元素是子元素(与表格相同)还是表格的父元素?感谢您的 cmets。希望我发布的编辑将向您展示我的表格是如何构建的。
标签: jquery colors background html-table