javascript - 隐藏/显示按钮无法正常工作

标签 javascript

我有一个编辑按钮,单击后需要消失,我尝试了以下代码,但该按钮仅适用于第一个 tr,如果我单击第二行,第一行上的按钮就会消失,我的有什么问题吗?代码?

function Edit(clickedButton){

   var getTR = clickedButton.closest('tr');
    var getLength = getTR.childElementCount;
    var getTds = getTR.querySelectorAll("td")

    for (i in getTds){
        if(i < (getLength-1)){
        getTds[i].innerHTML = "<input  type='text' value='"+getTds[i].innerHTML+"'>";
        }       
    }

    btnEdit.style.display = 'none';
}

HTML:

<table id="table" class="table .table-bordered" >
        <thead>
            <tr>
                <th>ID</th>
                <th>First Name</th>
                <th>Last Name</th>
                <th>DOB</th>
                <th>Gender</th>
                <th>Martial Status</th>
                <th>Action</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td class="user">1</td>
                <td class="firstName">Sr</td>
                <td class="lastName">Kar</td>
                <td class="dob">1-12-1990</td>
                <td class="gender">Male</td>
                <td class="status">Married</td>
                <td>
                    <button class="btnEdit" onclick="Edit(this)">Edit</button>
                    <button class="btnDel" onclick="Delete(this)">Delete</button>
                </td>
            </tr>
<tr>
                <td class="user">2</td>
                <td class="firstName">kajs</td>
                <td class="lastName">kasjk</td>
                <td class="dob">29-07-1995</td>
                <td class="gender">Female</td>
                <td class="status">Single</td>
                <td>
                    <button class="btnEdit" onclick="Edit(this)">Edit</button>
                    <button class="btnDel" onclick="Delete(this)">Delete</button>
                </td>
            </tr>
</tbody>
</table>

最佳答案

隐藏按钮不是javascript的责任!这是 CSS 的责任! (因为:如果您在示例中成为一个新请求,则编辑按钮必须变灰而不是隐藏,这是对网站风格的请求)

function Edit($button){
  var $tr = $button.closest('tr');
  $tr.toggleClass('editing');
  $tr.find("td").wrapInner(function(){
    return $('<input />').val(this.innerHTML);
  });
  
}
$('button').click(function(button){
  Edit($(this));
});
.editing button{
   display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<table>
  <tr>
    <td>abc</td>
    <td>123</td>
    <th><button>Hideme</button></th>
  </tr>
  <tr>
    <td>def</td>
    <td>456</td>
    <th><button>Hideme</button></th>
  </tr>
  <tr>
    <td>ghi</td>
    <td>789</td>
    <th><button>Hideme</button></th>
  </tr>
</table>

关于javascript - 隐藏/显示按钮无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31309747/

相关文章:

javascript - 当用户喜欢帖子时如何动态更新 Flask 模板?

javascript - AWQL(AdWords 查询语言)寻求多范围查询(各种)

php - PHP 网站安全问题? (可能也适用于 ASP/Rails/等)

javascript - 发电机 : Query only every 10th value

javascript - 如何允许在 Google Chrome 应用程序中的 webview 内下载?

javascript - Openlayers 5 如何观察 view.center 的变化

javascript:原始字符串有方法吗?

javascript - jqgrid 自动排序分组列上的数据,如何关闭?

javascript - 如何在 HTML 中制作可移动的 DIV/Layer

javascript - 无法使用 jquery 显示标签内容