问题描述
我对编码比较陌生,如果按下按钮,我会尝试从 tr
标记中删除“隐藏”属性。我通过使用 removeAttribute
尝试了这个,但没有任何反应。我尝试使用其他标签(如 button
)来查看问题是否与实际的 tr
标签有关,但没有任何效果。
这是html:
<tr class="hidden1"> <!-- hidden -->
<td><img src="/Users/benrodgers/Desktop/Coding/Project/greenArrowUp.png" id="redDown"></td>
<td rowspan="2">
<textarea name="userimp" id="userImp" disabled></textarea>
<button type="button" id="editBTN" onclick="edit()">:</button>
</td>
</tr>
这是JS:
function addComment() {
var addCom = prompt("Add you comment if you have any tips");
if (addCom != null) {
document.myForm.userinp.value = addCom;
document.getElementsByClassName("hidden1").removeAttribute('hidden');
}
}
解决方法
方法 1:您需要从 ClassName 中选择第一个元素,因为 getElementsByClassName
返回一个集合(一种数组,但不完全是)。此外,您需要删除 class
而不是值的属性名称 :)
试试这个:
document.getElementsByClassName("hidden1")[0].removeAttribute("class");
方法 2:您也可以使用以下方法删除此类:
document.querySelector(".hidden1").classList.remove("hidden1")
,
这应该适合你:
document.getElementsByClassName("hidden1")[0].classList.remove("hidden1");
因为 getElementsByClassName 返回一个集合。在这种情况下,索引 0 有效。
注意!
但是如果你的表中有更多的 tr 标签,你必须实现一个 uniqu 选择器。或动态类名。
,似乎 "hidden"
上没有可以删除的 <tr>
属性。
我猜您想从 "hidden1"
中删除 <tr>
类。
在这种情况下,您可以执行以下操作:
function addComment()
{
var addCom = prompt("Add you comment if you have any tips");
if (addCom != null)
{
document.myForm.userinp.value = addCom;
document.getElementsByClassName("hidden1")[0].classList.remove("hidden1");
}
}
请注意,document.getElementsByClassName
返回的是一个数组(实际上是一个集合,但它类似于数组),因此您必须引用它的成员才能引用实际的 DOM 元素。