复选框未在我的Chrome扩展程序中清除...
这是我的javascript / HTML:
MATLAB
$('#clearAll').click(function() {
$(':checkbox').each(function() {
$(this).removeAttr('checked');
$('input[type="checkbox"]').prop('checked', false);
})
});
事情是,当你在这里运行时,它看起来运行正常,但它不在我的Chrome扩展程序中,我正在努力,而我无法弄清楚为什么......
答案 0 :(得分:1)
您正在使用jQuery v 1.2.3,它不支持prop
方法。
升级到至少1.6。
然后你可以简单地做:
$('#clearAll').click(function() {
$('input[type="checkbox"]').prop('checked', false);
});
此外,最好将锚点(a
)用于预期目的 - 带你去某个地方。按钮可能更适合清除复选框:
<button id="clearAll">Clear All</button>
<强>段强>
$('#clearAll').click(function() {
$('input[type="checkbox"]').prop('checked', false);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
<head>
<a href="index.html">Back</a>
</br>
<title>Segmenting to Partners</title>
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<style type="text/css">
body {
max-width: 300px;
min-width: 300px;
margin: 40px;
}
</style>
</head>
<body>
<h2 style="color:red"><u>blah</u></h2>
<button id="clearAll">Clear All</button>
<p class="c1"><span class="c9 c2">Workflow</span>
</p>
<input type="checkbox" name="Solved Issue" value="Solved initial issue">Solve initial issue</br>
<input type="checkbox" name="" value="">blah blah blah blah</br>
<input type="checkbox" name="Solved Issue" value="Solved initial issue"><span class="c2">options 3</span>
</br>
<input type="checkbox" name="Solved Issue" value="Solved initial issue"><span class="c2">option 4</span>
</li>
</body>
</html>
&#13;
答案 1 :(得分:0)
您在使用该代码时遇到了一些问题:
prop
方法。 prop
才被添加到jQuery中。对于您正在使用的版本,您将使用attr
方法。
您需要的逻辑是检索所有复选框并更改其checked
值。您拥有的内容检索所有复选框,循环显示每个复选框,更改checked
值,再次检索所有复选框,并再次更改其checked
值。
您正在以正确的方式前进,但看起来您的代码随着您尝试进行故障排除而增长。 :)这应该照顾你想要做的事情:
$("#clearAll").click(function() {
$(":checkbox").attr("checked", false);
});
编辑:我刚刚看到了关于压制a
元素默认行为的其他评论。我首选的方法是将href
属性设置为javascript: void(0);
,如下所示:
<a id="clearAll" href="javascript: void(0);">Clear All</a>
这会阻止跨浏览器(包括旧版本的IE)链接的默认点击操作。