我的 HTML :
<tr><td>Text</td><td><input type="text" value=""></td></tr>
我的 CSS :
input:focus tr{ background-color:#fff;}
我想在输入字段中写入文本时突出显示白色的行。我知道“tr”在“输入”之前,但这有可能以任何方式进行吗?
非常感谢
答案 0 :(得分:9)
不,很遗憾。请参阅:Complex CSS selector for parent of active child
但是你可以这样做:http://jsfiddle.net/minitech/udzcp/
答案 1 :(得分:5)
使用JQuery很有可能。观察:
<强> HTML 强>
<table border="1" cellpadding="20">
<tr>
<td>Text</td>
<td height="50" width="100" id="somename"><input type="text" value="" id="mirza"></td>
</tr>
<tr><td> </td><td> </td></tr>
<tr><td>a </td><td>1 </td></tr>
<tr><td>a </td><td>1 </td></tr>
<tr><td>a </td><td>1 </td></tr>
<tr><td>a </td><td>1 </td></tr>
<tr><td>a </td><td>1 </td></tr>
</table>
<强> CSS 强>
.highlightedRow { background-color: orange; }
<强> Jquery的强>
$('input').focus(function() {
$(this).parent().parent().addClass('highlightedRow');
});
$('input').blur(function() {
$(this).parent().parent().removeClass('highlightedRow');
});
答案 2 :(得分:1)
可悲的是,没有办法用CSS设置父元素的样式,所以你必须使用javascript。
答案 3 :(得分:1)
这对于生成大量类似行(循环遍历大型数据集等)很有用: 脚本:
function rowSet(data_id){
document.getElementById('row_' + data_id).style.backgroundColor = 'blue';
}
function rowReset(data_id){
document.getElementById('row_' + data_id).style.backgroundColor = '';
}
体:
<body>
<form>
<table>
<tr id="row_#data_id#">
<td><input name="input1_#data_id#" onFocus="rowSet(#data_id#);" onBlur="rowReset(#data_id#);"></td>
<td><input name="input2_#data_id#" onFocus="rowSet(#data_id#);" onBlur="rowReset(#data_id#);"></td>
</tr>
</table>
</form>
</body>
你也可以使用currentRow,或者你喜欢的任何东西。
答案 4 :(得分:-1)