从 tr 标签中删除隐藏属性

问题描述

我对编码比较陌生,如果按下按钮,我会尝试从 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 元素。