1
我有一張桌子。JavaScript:元素style.display ='塊'不起作用
- 在我的表格中,單元格有一個註釋圖標。
- 點擊圖標時,它應該消失,你應該能夠看到一個textarea,用一個按鈕退出它。
- 如果你點擊那個按鈕,評論圖標應該再次顯示。
我認爲CSS重寫JavaScript,因爲控制檯告訴我我有正確的元素來更改顯示屬性。這裏的HTML,CSS和JavaScript我的工作:
function hideComment(){
this.parentNode.style.display="none";
this.parent.firstChild.style.display="block";
}
var exitButton = document.querySelectorAll(".exit-button");
for (var i = 0; i < exitButton.length; i++){
exitButton[i].addEventListener ('click', hideComment, false);
}
function addComment(){
this.style.display = 'none';
this.nextSibling.style.display = "block";
}
var displayComment = document.querySelectorAll(".fa-comment-o");
for (var i = 0; i < displayComment.length; i++){
displayComment[i].addEventListener('click', addComment, false);
}
.c-na-table textarea,
.c-na-table button{
display: none;
}
<p>This table enables users to leave a comment in one of the cells.</p>
<div class="table-three">
<table class="c-na-table">
<thead class="th-head">
<tr>
<td class="td-input"></td>
<td class="column-a-0c no-lite">Course 1</td>
<td class="column-b-0c no-lite">Course 2</td>
<td class="column-c-0c no-lite">Course 3</td>
<td class-"column-d">Comments </td>
</tr>
</thead>
<tbody>
<tr class="row-a">
<td class="td-input"><input type="checkbox"></input></td>
<td class="column-a-3">Specification 1</td>
<td class="column-b-3">Specification 1</td>
<td class="column-c-3">Specification 1</td>
<td class="column-d"><i class="fa fa-comment-o" aria-hidden="true"></i><div id="ta-one">
<button class="exit-button">×</button>
<textarea row="4" col="20"></textarea>
</div></td>
</tr>
<tr class="row-b">
<td class="td-input"><input type="checkbox"></input></td>
<td class="column-a-3">Specification 2</td>
<td class="column-b-3">Specification 2</td>
<td class="column-c-3">Specification 2</td>
<td class="column-d"><i class="fa fa-comment-o" aria-hidden="true"></i><div id="ta-two">
<button class="exit-button">×</button>
<textarea row="4" col="20"></textarea>
</div></td>
</tr>
<tr class="row-c">
<td class="td-input"><input type="checkbox"></input></td>
<td class="column-a-3">Specification 3</td>
<td class="column-b-3">Specification 3</td>
<td class="column-c-3">Specification 3</td>
<td class="column-d"><i class="fa fa-comment-o" aria-hidden="true"></i><div id="ta-three">
<button class="exit-button">×</button>
<textarea row="4"col="20"></textarea>
</div></td>
</tr>
</tbody>
<tfoot class="tf-foot">
<tr></tr>
</tfoot>
</table>
</div>
可能更容易/最好使用'.hide'類,而不是增加你的'顯示:none'規則的選擇,然後讓你的代碼添加或刪除'hide'類('這一點。 classList.add('hide')','this.classList.remove('hide');'等) –
使用'.parentNode'或'.parentElement'。在痛苦JS中,'parent'用於引用iframe中的子頁面的父頁面。 – zer00ne
ok,所以按鈕的父頁面消失了,這使得按鈕(即。this)默認情況下消失了.'this.parent.firstChild.style .display =「block」'所以這是同一個父項,但父項中的任何內容仍然是'none'。這就是說,如果你真的有'父母'的工作.... – zer00ne