我對JQuery相當陌生,遇到以下問題。 我正在製作一個網站,顯示一個表,其中隱藏了colspan = 4的行。 當您單擊一行時,下面的行(之前隱藏)應該滑出,被點擊的行應該有紅色背景和白色文本顏色。如果再次點擊同一行,下面的行應該再次切換滑塊,點擊的行應該返回到前一個佈局(在我的例子中是白色的BG和黑色的文本)。屬性返回未定義表
slideToggle工作正常,但顏色會出現問題。 HTML和JQuery如下。
HTML:
<table>
<tr>
<td>Test 1</td>
<td>Test 2</td>
<td>Test 3</td>
<td>Test 4</td>
</tr>
<tr>
<td colspan="4"> This is the first hidden row</td>
</tr>
</table>
CSS:
table{
border-collapse: collapse;
}
td{
color: black;
background-color: white;
}
JQuery的:
$(function() {
$("td[colspan=4]").hide();
$("table").click(function (event) {
event.stopPropagation();
var $target = $(event.target);
if ($target.closest("td").attr("colspan") > 1) {
} else {
$target.closest("tr").next().find("td").slideToggle("fast");
}
}
);
});
現在,上面的代碼應該工作,但是當我插入一個if-else來檢查隱藏的行是否隱藏,我經常得到未定義或可見(我通過警報檢查)。同樣,如果我檢查點擊行的顏色屬性,我經常會得到Undefined。
我想,我需要這樣的東西:
檢查點擊TR的屬性:
if($target.closest("tr").attr("color") === "black"){$target.closest("tr").css("color","white").css("background-color","red");}
else{
$target.closest("tr").css("color","black").css("background-color","white");}
OR
檢查是否隱藏的行實際上是隱藏:
if($target.closest("tr").next().find("td").is(":visible")){$target.closest("tr").css("color","white").css("background-color","red");}
else{
$target.closest("tr").css("color","black").css("background-color","white");}
如果這個問題太含糊,我很抱歉。如有必要,我可以多說些話。
的jsfiddle:https://jsfiddle.net/qeg2zb7e/
哪裏是你的CSS代碼? –
添加jsfiddle工作鏈接,以便我們可以檢查發生了什麼 –
提示:'tr.selected {background-color:red} tr.hidden {display:none}''.addClass(「selected」)''''.removeClass( 「隱藏」)' – Andreas