【发布时间】:2015-01-25 00:06:16
【问题描述】:
为什么在做removeAttr("border")的时候边框没有去掉(属性去掉了,但是样式保留了)?
演示
$("#button1").on("click", function() {
$("table").removeAttr("border");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table border="1">
<tbody>
<tr>
<td>Hello</td>
<td>World</td>
</tr>
</tbody>
</table>
<table>
<tbody>
<tr>
<td>Not</td>
<td>Initially</td>
<td>Bordered</td>
</tr>
</tbody>
</table>
<input type="button" id="button1" value="Click to remove border via JavaScript">
我在 Chrome 和 Chromium 上复制了这个。
【问题讨论】:
-
这是因为没有任何属性或用户 css 样式的默认表将占用用户代理样式,即浏览器样式。创建一个未装饰的简单表,看看会发生什么。
-
而不是删除边框现在做一个
$("table").attr("border", "0");然后看看。 -
@abhitalks 不,默认表没有任何边框,除非添加了
border="1"(参见第一个表)。第二个表格没有任何边框。 -
@abhitalks
attr("border", "0")解决了这个问题,但它没有解释为什么removeAttr不能正常工作。
标签: javascript jquery html css google-chrome