如何在jquery中更改属性"hidden"

use*_*813 23 javascript jquery

<td>
<input id="check" type="checkbox" name="del_attachment_id[]" value="<?php echo $attachment['link'];?>">
</td>

<td id="delete" hidden="true">
the file will be deleted from the newsletter
</td>
Run Code Online (Sandbox Code Playgroud)

我想知道当选中或未选中复选框时,如何在Jquery中将属性"hidden"更改为false.

Amm*_*CSE 29

$(':checkbox').change(function(){
    $('#delete').removeAttr('hidden');
});
Run Code Online (Sandbox Code Playgroud)

注意,感谢tip by A.Wolff,你应该使用removeAttr而不是设置为false.设置为false时,该元素仍将被隐藏.因此,去除更有效.

  • Hidden是一个布尔属性,你需要删除它,而不是将它设置为''false'.或者使用`.prop('hidden',false);` (4认同)

Ano*_*shi 21

您可以使用jquery attr方法

$("#delete").attr("hidden",true);
Run Code Online (Sandbox Code Playgroud)

  • 为什么不`.prop("hidden",true);`? (2认同)

小智 11

A.沃尔夫带领你朝着正确的方向前进.有几个属性不应该设置字符串值.你必须用布尔truefalse.来切换它.

.attr("hidden", false)将删除与使用相同的属性.removeAttr("hidden").

.attr("hidden", "false") 不正确,标签仍然隐藏.

你不应该设置hidden,checked,selected,或一些其他任何字符串值切换它.


Pra*_*lan 6

使用prop()更新的隐藏属性,change()用于处理更改事件.

$('#check').change(function() {
  $("#delete").prop("hidden", !this.checked);
})
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
  <tr>
    <td>
      <input id="check" type="checkbox" name="del_attachment_id[]" value="<?php echo $attachment['link'];?>">
    </td>

    <td id="delete" hidden="true">
      the file will be deleted from the newsletter
    </td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)